其他分享
首页 > 其他分享> > OpenCv C透视变换

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