OpenCv C透视变换
作者:互联网
我试图使用OpenCv来校正图像的失真,然后计算给定像素坐标的真实世界坐标.我无法在线或在OpenCv书中找到任何有关如何执行此操作的示例.
我用国际象棋棋盘图像完成了相机校准.现在,我只需要一个基本功能,我可以给出像素坐标,它将根据相机矩阵,失真系数,旋转和平移向量给出真实世界坐标.
有谁知道如何做到这一点?
解决方法:
看一下findHomography()函数.如果您知道现实世界中一组点的位置,您可以使用此函数创建转换矩阵,您可以将其与函数perspectiveTransform()一起使用
std::vector<Point2f> worldPoints;
std::vector<Point2f> cameraPoints;
//insert somepoints in both vectors
Mat perspectiveMat_= findHomography(cameraPoints, worldPoints, CV_RANSAC);
//use perspective transform to translate other points to real word coordinates
std::vector<Point2f> camera_corners;
//insert points from your camera image here
std::vector<Point2f> world_corners;
perspectiveTransform(camera_corners, world_corners, perspectiveMat_);
您可以找到有关功能here的更多信息
标签:c,opencv,camera-calibration,camera 来源: https://codeday.me/bug/20190827/1735763.html