我已经从主题中读过3本书了
实用OpenCV - Smarth Brahmbhat
学习OpenCV - O'Reilly
OpenCV 2计算机视觉应用编程手册 - RobertLaganière
我已经完成了校准过程,校准后我得到了所有的返回参数,例如:
相机矩阵
失真系数
外部参数
我运行了一个程序来获取这些数据 . 该程序位于OpenCV教程的“calib3d模块 . 摄像机校准和3D重建”部分 .
我将描述这个过程,我把一个固定的摄像头放在镜头前寻找地板和棋盘 . 我拍了15张棋盘移动它的照片,最后一张照片是棋盘在地板上,倾斜度为0º .
几本书谈论使用这个公式将真实的单词坐标转换为像素 .
平移和旋转矩阵是3行×4列,但外部参数是15行×6列,每张照片一个 . 我用了最后一排 . 我已经阅读并发现3个第一个cols对应于旋转系数,最后3个cols对应于平移系数但是旋转矩阵是3x3所以我使用函数 cv::Rodrigues 将其转换为3x3并且我把它放在旁边的col从cv :: Rodrigues返回cv :: Mat(我从 Learning OpenCV - O'Reilly 读到) .
所以,我需要像素到真实世界坐标,而不是向后 . 因此我应用了Cramer Rule来获得X和Y,但是它返回了我的感测点,就像现实世界中的0,0像素是-4,-3一样 .
我问如何以正确的方式从像素中获取真实世界坐标 . 我希望已经清楚了