相机内外参和与图像分辨率的关系

在进行摄像头标定、重建或点云处理的过程中,我们经常会遇到一个关键问题:

“相机内参和图像分辨率有关系吗?如果我缩放了图像,内参还能用吗?”

答案是:有关系,而且很重要!


一、内参矩阵 K 是什么?

相机内参矩阵(intrinsic matrix)通常写成:

图片[1]-相机内外参和与图像分辨率的关系-天煜博客

其中:

  • fx, fy :用像素位为单位的焦距
  • cx, cy :主点位置(光心投影在图像上的位置)

这些参数都是“以像素位为单位”的,所以和 图像分辨率 相关。


二、图像缩放时,内参怎么变?

假设原图分辨率为 1920x1080,标定得到内参:

fx = 960, fy = 960
cx = 960, cy = 540

如果图像缩小为一半(即 960×540),那么新的内参就应该是:

fx = 480, fy = 480
cx = 480, cy = 270

即所有以像素位计的值,都要 按照缩放比例等比缩放,否则会导致投影错误,重建偏移,在点云中表现为视锥偏移、大小错误。


三、内参、外参和分辨率的关系总结

项目是否变化随图像分辨率说明
内参 (fx, fy, cx, cy)✅ 是所有值都是像素单位,图像缩放就要缩放
外参 (R, t)❌ 否外参是相机在世界坐标系中的位置,不依赖分辨率
视锥显示✅ 有影响如果内参和分辨率不配,显示会错位

四、如何解决不匹配问题?

情况 1:你用的是缩放后的图像和内参,并且分辨率对应

✅ 仅需在 CloudCompare 里填写对应的分辨率即可

情况 2:你不确定内参是哪个分辨率的

❌ 需要根据主点 cx/cy 推算图像缩放比例,推算出对应图像尺寸

情况 3:你有原图 + 缩放图 + 内参

✅ 用缩放图时使用对应内参,如果要进行添达,可按比例改换 fx/fy/cx/cy


结论

相机内参是根据图像分辨率定义的。 如果你改变了图像大小,那就必须缩放内参才能保证实际位置是正确的。

很多重建失败、视锥显示错误,其根本原因是: 内参和图像分辨率不配对!


🎯 目标:将内参从原图缩放后的版本还原成标准 1920×1080 下的版本

✅ 原始数据

"resolution": [1920, 1080],
"intrinsic": [
  [510.0, 0.0, 259.0],
  [0.0, 510.0, 259.0],
  [0.0, 0.0, 1.0]
]

cx=259 非常小,不在 1920x1080 图像的中心(正常应为 cx=960,cy=540),说明这个内参是针对缩小图像计算的。


🧠 第一步:计算缩放比例

以图像宽度为基准(更稳定),我们估算原图像被缩小到了:

scale_x = 259 / 960 ≈ 0.27

也就是说,原图(1920×1080)被缩小到了大约:

宽 = 1920 * 0.27 ≈ 518
高 = 1080 * 0.27 ≈ 292

✅ 第二步:将内参按比例放大回原图大小

当前内参:

fx = 510
fy = 510
cx = 259
cy = 259

缩放因子为:

scale_x = 1920 / 518 ≈ 3.706

放大后内参为:

fx = 510 * 3.706 ≈ 1890.06
fy = 510 * 3.706 ≈ 1890.06
cx = 259 * 3.706 ≈ 958.55
cy = 259 * 3.706 ≈ 958.55

✅ 最终变换结果(对应 1920×1080 图像)

图片[2]-相机内外参和与图像分辨率的关系-天煜博客

📌 总结

如果你想将一组内参转换成对应 1920×1080 图像下的版本:

新的 fx = 原 fx × (1920 / 缩放图宽)
新的 fy = 原 fy × (1080 / 缩放图高)
新的 cx, cy 也按同样比例缩放

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容