#ifndef LIBAPI_2D_H #define LIBAPI_2D_H #include "Libapi2D3D.h" #include #include #include class Cal2D { public: //广角摄像机和高清相机图像映射 static int LibapiGet2D2DMapRect(cv::Mat& dst_im, bool fake = true, std::string fakeFilePath = ""); //读取广角相机图像 static int LibapiCapLQImage(cv::Mat& dst_im); //读取高清图像 static int LibapiCapHQImage(CMeasureInfo* measureInfoPtr, std::shared_ptr& dst_im); //从文件读取高清图像 static int LibapiReadHQImage(const std::string plyPath, cv::Mat& dst_im); //保存高清图像 static int LibapiCopyHQImage(cv::Mat& src_im, cv::Mat& dst_im); //图像去畸变 static int LibapiUndistort(cv::Mat& src_im, cv::Mat& dst_im); //持续采集广角图像(PYTHON) //AI识别广角图像中的预埋件,返回其ROI坐标 static int LibapiDetectObj(CMeasureInfo* CMeasureInfo); //通过一组ROI坐标获取ROI图像 static int LibapiGetSubImFromRois(cv::Mat& im, const int& id, const std::string& info, std::vector rois, std::vector&subMat, bool fake); //在单个预埋件图像中计算区域内预埋件边缘和角点 static int LibapiGetEdegsAndConners(cv::Mat& src, std::vector>& sort_lines4, std::vector>& sort_conners4); // 挑选出的内在区域 static int LibapiSelectInnerRegion(CSubRoi& subMat); // 挑选出2D-3D点对用于计算单应矩阵H static int LibapiSelect2DTo3DPoints(CMeasureInfo& CMeasureInfo, CSubRoi& im, std::vector& vec2D, std::vector& vec3D); // 计算单应矩阵 static int LibapiCalH(const std::vector& vec2D, const std::vector& vec3D, cv::Mat& H); // 计算预埋件角点和中心位置 static int LibapiCalScale(const CSubRoi& subConner, int H); }; #endif