You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 10:38:01