单平面的摄像机校准
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单平面的摄像机校准相关的知识,希望对你有一定的参考价值。
我的问题陈述很简单。但我无法让opencv校准工作。我正在使用这里的代码:source code。我必须以固定的距离拍摄与相机平行的图像。我尝试仅在相机和不同平面上拍摄测试图像(大约20张)。我也改变了大小和方块的数量。
在这种情况下校准的最佳方法是什么?
未失真的图像稍后会被裁剪,这就是它看起来更小的原因。
仔细检查图像后,枕形失真似乎已得到纠正。但“梯形”失真仍然存在。由于相机安装在一个封闭的盒子里,我可以拍摄图像的平面是有限的。
为了简化弗拉德已经说过的内容:理论上不可能仅使用与摄像机平行的测试图像来校准您的摄像机。您必须更改校准板的方向。实际上,每个测试图像中应该有不同的方向。
查看以下链接中的前两个图像,了解校准板应如何倾斜(或倾斜):http://www.vision.caltech.edu/bouguetj/calib_doc/
将校准问题看作寻找投影矩阵P:
image_points = P * 3d_points,其中P =内在的*外在的
现在跟我说吧:你基本上对内在部分感兴趣,但校准算法必须找到内在和外在。现在,如果选择无穷远处的3D点,则可以获得每列投影矩阵,例如xInf = [1,0,0,0]。这个点是无穷远的,因为当你从齐次坐标转换为笛卡儿时,得到[1 / 0,0,0]。如果将投影矩阵与无穷远点相乘,您将获得其相应的列(第1列为Xinf,第2列为yInf,第3列为zInf,第4列为相机中心)。
因此,结论很简单 - 要获得投影矩阵(即成功校准),您必须清楚地看到无限远点或消失点的点,这些点来自棋盘装备中的线的会聚扩展(也就是地平线上的铁轨末端) 。您的图像不易检测消失点,因为您不会倾斜您的棋盘,也不会通过后退来旋转或缩放它。因此,您的校准将始终失败。
以上是关于单平面的摄像机校准的主要内容,如果未能解决你的问题,请参考以下文章