lens model in OpenCV是一种失真模型,它将理想位置扭曲到相应的真实(扭曲)位置:
其中r ^ 2 = x_distorted ^ 2 + y_distorted ^ 2在标准化图像坐标中(为简单起见,省略了切向失真)。 Z. Zhang:“一种灵活的摄像机校准新技术”,TPAMI 2000以及Bouguet的“摄像机校准工具箱Matlab”中也有这一点。
另一方面,Bradski和Kaehler:“学习OpenCV”在第376页中将镜头模型引入校正模型,将失真位置校正到理想位置:
其中r'^ 2 = x_corrected ^ 2 + y_corrected ^ 2在归一化图像坐标中。 Hartley和Zisserman:“计算机视觉中的多视图几何”也描述了这个模型。
我理解校正和失真模型在实践中都有优点和缺点。例如,前者使得检测到的特征点位置的校正变得容易,而后者使整个图像的不变形变得简单。
我的问题是,为什么他们共享相同的多项式表达式,而它们应该是彼此相反的?我可以找到this document评估 inversibility ,但其理论背景对我来说并不清楚。
感谢您的帮助。
答案 0 :(得分:1)
我认为简短的回答是:它们只是不同的模型,因此它们不应该是彼此相反的。就像你已经写过的那样,每个都有自己的优点和缺点。
关于不可逆性,这取决于多项式的阶数。二阶(二次)多项式容易反转。 4阶需要更多的工作,但仍然可以分析倒置。但是只要你添加一个6阶项,你就可能不得不求助于数值方法来找到逆,因为在一般情况下5th-order or higher polynomial在分析上是不可逆的。
答案 1 :(得分:0)
根据泰勒的扩展,世界上的每个公式都可以写成c0 + c1 * x + c2 * x ^ 2 + c3 * x ^ 3 + c4 * x ^ 4 ... 目标只是发现常数。 在我们的特定情况下,表达式必须在x和-x(偶数函数)中对称,因此x,x ^ 3,x ^ 5,x ^ 7中的常量等于零。