【发布时间】:2022-01-09 07:11:40
【问题描述】:
如果我捕获具有已知真实世界坐标的棋盘图案的单个视图,我可以使用例如 OpenCV calibrateCamera 函数来计算该相机的失真系数。
这些畸变系数是内在参数,不依赖于相机位姿,所以如果相机移动畸变系数不会改变,至少这是我的理解。 我的问题是这些系数什么时候会改变?我相信它们会随着系统中的组件(像素、镜头、支架等)的膨胀和收缩而随着温度的变化而变化,但温度是可以控制的。
可以为系统计算一次失真而不再计算失真吗?如果镜头被移除然后重新安装怎么办?如果到被成像物体的距离发生变化(工作距离)怎么办?
我在任何地方都找不到太多关于此的讨论。
【问题讨论】:
-
失真取决于独特的相机和镜头,因此如果您更换镜头,您可能需要再次计算新的内在函数。 Zoom 对内在函数的影响比对焦点的影响更大,但为了完美不失真,你应该同时锁定它们。我没有因温度、老化等而退化的经验。理论上,一旦镜头或传感器位置/方向发生变化(相对于彼此),您就必须重新校准。
-
失真会随焦距而变化。您可以开发包含此参数的模型,但通常无法以数字方式获得该设置。其他变化可能不太显着。但是您可以自己轻松地进行实验。
标签: opencv image-processing computer-vision camera-calibration