OpenCV projectPoints函数投影原点偏离图像中心的问题排查
OpenCV projectPoints函数投影原点偏离图像中心的问题排查
我现在遇到一个困扰的问题:想用OpenCV的projectPoints函数在摄像头拍摄的图像中绘制3D坐标点,但测试时发现投影出的点总是和真实物体位置有偏移——最明显的就是尝试把3D原点(0,0,0)投影到图像中心时,结果完全不对。

我的图像尺寸是(2988, 5312, 3),图里的大红点是计算出的图像中心(1494, 2656),而带十字线的小红点是3D原点(0,0,0)在无旋转、无平移参数下的投影结果,坐标是(1476, 2732)。
我的核心疑问是:为什么这个投影出来的点不在图像正中间?
我是通过这段代码计算投影点的:
origin_2d, jacobian = cv2.projectPoints( np.array([(0.0, 0.0, 0.0)]), np.array([(0.0, 0.0, 0.0)]), np.array([(0.0, 0.0, 0.0)]), mtx, dist, )
按我的理解,在没有旋转、没有平移的情况下,3D原点应该正好投影到图像中心才对,难道我的理解错了?
另外,相机内参mtx和畸变系数dist是我用图中的棋盘格,按照OpenCV官方的相机标定流程得到的。会不会是标定过程出了问题?还是我对投影原理的理解有疏漏?
盼各位大佬帮忙解惑,感谢!
备注:内容来源于stack exchange,提问作者Felix N
相关产品推荐
相关产品推荐

