【发布时间】:2016-09-23 23:56:02
【问题描述】:
lens model in OpenCV 是一种扭曲模型,它将理想位置扭曲到相应的真实(扭曲)位置:
- x_corrected = x_distorted (1 + k_1 * r^2 + k_2 * r^4 + ...),
- y_corrected = y_distorted (1 + k_1 * r^2 + k_2 * r^4 + ...),
其中 r^2 = x_distorted^2 + y_distorted^2 在标准化图像坐标中(为简单起见,省略了切向失真)。这也可以在 Z. Zhang:“A Flexible New Technique for Camera Calibration”中找到,TPAMI 2000 以及 Bouguet 的“Camera Calibration Toolbox for Matlab”。
另一方面,Bradski 和 Kaehler:“Learning OpenCV”在第 376 页介绍了镜头模型作为校正模型,它将扭曲的位置校正到理想位置:
- x_distorted = x_corrected (1 + k'_1 * r'^2 + k'_2 * r'^4 + ...),
- y_distorted = y_corrected (1 + k'_1 * r'^2 + k'_2 * r'^4 + ...),
其中 r'^2 = x_corrected^2 + y_corrected^2 在归一化图像坐标中。 Hartley 和 Zisserman:“计算机视觉中的多视图几何”也描述了这个模型。
我了解校正和失真模型在实践中各有利弊。例如,前者使检测到的特征点位置的校正变得容易,而后者使整个图像的不失真变得简单。
我的问题是,为什么它们共享相同的多项式表达式,而它们应该是彼此的逆?我可以找到this document 评估可逆性,但我不清楚它的理论背景。
感谢您的帮助。
【问题讨论】:
-
您可能希望提供有关这两种方法的更多详细信息,这样我们就不必搜索 5 篇论文和书籍来查找您所谈论的内容。一般来说,这两种方法都有相同的目标。它们校正相同的光学像差。因此我希望他们共享相同或非常相似的多项式
-
感谢您的评论。我已经添加了方程式。
标签: opencv image-processing computer-vision camera-calibration