gpt4 book ai didi

c++ - 在 OpenCV 中使用失真系数和 findHomography

转载 作者:行者123 更新时间:2023-11-28 07:10:06 28 4
gpt4 key购买 nike

我目前迷失在 OpenCV 文档中,正在寻找一些关于函数可能排序的指导,或者可能是 OpenCV 中我还没有遇到的函数......

我正在跟踪摄像机馈送中的激光 Blob 到投影屏幕上的某个位置。到目前为止,我一直在使用 findHomography 然后使用 projectTransform 来完成此操作,但是我使用的相机几乎没有失真。现在我使用的是另一台具有明显径向畸变的相机。我已经使用 cvCalibrateCamera 获取失真系数、相机矩阵等,但我不确定我应该如何在我当前的过程中使用这些数据,或者我可能需要使用不同的函数和/或完全来自 OpenCV 的函数排序。任何建议将不胜感激...

我目前运行良好(没有失真)的代码如下:

Mat homog;
homog = findHomography(Mat(vCameraPoints), Mat(vTargetPoints), CV_RANSAC);

vector<Point2f> cvTrackPoint;
cvTrackPoint.push_back(Point2f(pMapPoint.fX, pMapPoint.fY));

Mat normalizedImageMat;
perspectiveTransform(Mat(cvTrackPoint), normalizedImageMat, homog);

Point2f normalizedImgPt;
normalizedImgPt = Point2f(normalizedImageMat.at<Point2f>(0,0));
normalizedImgPt.x /= szCameraSize.fWidth;
normalizedImgPt.y /= szCameraSize.fHeight;

然后我当然会将 normalizedImgPt 乘以我的投影屏幕分辨率

所以,再次澄清一下...我确实有来自 calibrateCamera 的看似不错的数据,我如何使用这些信息来考虑镜头失真?上面的过程可能行不通,有什么帮助吗?

提前致谢

最佳答案

如果您已经获取了失真系数,那么返回到非失真情况的一种简单(但可能不是最佳)方法是取消失真图像。未失真图像是具有相似内在和外在参数但没有镜头畸变的相机将获得的图像。对应的OpenCV函数为undistort

关于c++ - 在 OpenCV 中使用失真系数和 findHomography,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21147977/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com