0
点赞
收藏
分享

微信扫一扫

initUndistortRectifyMap() 的学习笔记

b91bff6ffdb5 2022-03-15 阅读 100

关于参数讲解,博文已经讲的很好了,这里只对自己觉得疑惑的地方作下笔记:

问题1

在这里插入图片描述
关于cv::getOptimalNewCameraMatrix() 和 cv::stereoRectify() 这篇文章讲的很好。

我的主要问题是:为什么单目相机的 newCameraMatrix 一般和 cameraMatrix 相等,而双目的就需要用 cv::stereoRectify() 另行计算?

另外对于双目相机,cv::stereoRectify() 得到的新投影矩阵 P 1 , P 2 P_1, P_2 P1P23x4 的,使用时要像下面这样调用 P1.rowRange(0, 3).colRange(0, 3) 只取其左上角的 3x3 矩阵

cv::stereoRectify(K1,camera1DistortionCoef(),K2,camera2DistortionCoef(),newImSize_,
                  R12, t12,
                  R_r1_u1,R_r2_u2,P1,P2,Q,
                  cv::CALIB_ZERO_DISPARITY,-1,newImSize_);

//        https://blog.csdn.net/u013341645/article/details/78710740
//        https://www.freesion.com/article/3256753294/
//        计算无畸变和修正转换映射。
cv::initUndistortRectifyMap(K1, camera1DistortionCoef(), R_r1_u1, P1.rowRange(0, 3).colRange(0, 3),
                            newImSize_, CV_32F, M1l_, M2l_);
cv::initUndistortRectifyMap(K2, camera2DistortionCoef(), R_r2_u2, P2.rowRange(0, 3).colRange(0, 3),
                            newImSize_, CV_32F, M1r_, M2r_);

问题2

在这里插入图片描述
这里的 m a p x ( u , v ) , m a p y ( u , v ) map_x(u,v), map_y(u,v) mapx(u,v),mapy(u,v) 应该就是对应的 initUndistortRectifyMap() 的最后两个参数:map1map2

initUndistortRectifyMap() + remap() = undistort()
cv::remap(imLeft, imLeftToFeed, M1l_, M2l_, cv::INTER_LINEAR);
cv::remap(imRight, imRightToFeed, M1r_, M2r_, cv::INTER_LINEAR);

remap的参数可以参考博文

举报

相关推荐

Thymeleaf的学习笔记

JavaScript的学习笔记

Presto的学习笔记

我的学习笔记

TypeScript的学习笔记

idea的学习笔记

Swagger的学习笔记

javaJDBC的学习笔记

Redis的学习笔记

0 条评论