Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv 透镜畸变模型与校正模型_Opencv_Image Processing_Computer Vision_Camera Calibration - Fatal编程技术网

Opencv 透镜畸变模型与校正模型

Opencv 透镜畸变模型与校正模型,opencv,image-processing,computer-vision,camera-calibration,Opencv,Image Processing,Computer Vision,Camera Calibration,是一种畸变模型,将理想位置畸变为相应的真实(畸变)位置: x_校正=x_畸变(1+k_1*r^2+k_2*r^4+…) y_校正=y_失真(1+k_1*r^2+k_2*r^4+…) 其中,r^2=x_畸变^2+y_畸变^2在归一化图像坐标中(为简单起见,省略切向畸变)。这也见于Zhang:“一种灵活的摄像机校准新技术”,TPAMI 2000,以及Bouguet的“Matlab摄像机校准工具箱” 另一方面,Bradski和Kaehler:“学习OpenCV”在第376页中介绍了镜头模型作为校正

是一种畸变模型,将理想位置畸变为相应的真实(畸变)位置:

  • x_校正=x_畸变(1+k_1*r^2+k_2*r^4+…)
  • y_校正=y_失真(1+k_1*r^2+k_2*r^4+…)
其中,r^2=x_畸变^2+y_畸变^2在归一化图像坐标中(为简单起见,省略切向畸变)。这也见于Zhang:“一种灵活的摄像机校准新技术”,TPAMI 2000,以及Bouguet的“Matlab摄像机校准工具箱”

另一方面,Bradski和Kaehler:“学习OpenCV”在第376页中介绍了镜头模型作为校正模型,将扭曲位置校正到理想位置:

  • x_畸变=x_校正(1+k''u 1*r'^2+k''u 2*r'^4+…)
  • y_扭曲=y_校正(1+k''u 1*r'^2+k''u 2*r'^4+…)
其中,r'^2=x_校正^2+y_校正^2在标准化图像坐标中。 Hartley和Zisserman:“计算机视觉中的多视图几何”也描述了这个模型

我理解校正模型和畸变模型在实践中各有优缺点。例如,前者使检测到的特征点位置的校正变得容易,而后者使整个图像的不失真变得简单

我的问题是,为什么它们共享相同的多项式表达式,而它们应该是彼此的倒数?我可以找到评估可逆性的方法,但我不清楚它的理论背景


谢谢你的帮助。

我想简单的回答是:它们只是不同的模型,所以它们不应该是彼此的反面。就像你已经写过的,每一个都有自己的优点和缺点


至于可逆性,这取决于多项式的阶数。二阶(二次)多项式很容易反转。第四阶需要做更多的工作,但仍然可以用解析的方法求逆。但是,一旦你加上一个六阶项,你可能就不得不求助于数值方法来求逆,因为在一般情况下,a在解析上是不可逆的。

根据泰勒展开式,世界上的每一个公式都可以写成c0+c1*x+c2*x^2+c3*x^3+c4*x^4。。。 目标只是发现常量。
在我们的特殊情况下,表达式必须在x和-x(偶数函数)中对称,因此x、x^3、x^5、x^7中的常数等于零。

您可能需要提供这两种方法的更多详细信息,这样我们就不必在5篇论文和书籍中搜索您所谈论的内容。一般来说,这两种方法都有相同的目标。它们纠正了相同的光学像差。因此,我希望他们共享相同或非常相似的多项式谢谢你的评论。我已经添加了方程式。非常感谢你的回答。我同意它们是不同的模型,尽管它们显然有着相同的结构。