单目摄像头标定与测距
一、 标定
首先要对摄像头做标定,具体的公式推导在learning opencv中有详细的解释,这里顺带提一句,这本书虽然确实老,但有些理论、算法类的东西里面还是讲的很不错的,必要的时候可以去看看。
1.单目摄像头标定
标定的目的是为了消除畸变以及得到内外参数矩阵,内参数矩阵可以理解为焦距相关,它是一个从平面到像素的转换,焦距不变它就不变,所以确定以后就可以重复使用,而外参数矩阵反映的是摄像机坐标系与世界坐标系的转换,至于畸变参数,一般也包含在内参数矩阵中。从作用上来看,内参数矩阵是为了得到镜头的信息,并消除畸变,使得到的图像更为准确,外参数矩阵是为了得到相机相对于世界坐标的联系,是为了最终的测距。
关于畸变,大家可以看到自己摄像头的拍摄的画面,在看矩形物体的时候,边角处会有明显的畸变现象,而矫正的目的就是修复这个。
知道双目测距的时候两个相机需要平行放置,但事实上这个是很难做到的,所以就需要立体校正得到两个相机之间的旋转平移矩阵,也就是外参数矩阵。
2.如何做摄像头的在线标定?
二.单目测距原理
将使用相似三角形来计算相机到一个已知的物体或者目标的距离。 相似三角形就是
这么一回事:假设有一个宽度为 W 的目标或者物体。然后将这个目标放在距离
的相机为 D 的位置。用相机对物体进行拍照并且测量物体的像素宽度 P 。这样就得
出了相机焦距的公式:F = (P x D) / W
举个例子,假设我在离相机距离 D = 24 英寸的地方放一张标准的 8.5 x 11 英寸 A4 纸
(横着放;W = 11)并且拍下一张照片。我测量出照片中 A4
纸的像素宽度为 P = 249 像素。 因此我的焦距 F 是: F = (248px x 24in) / 11in = 543.45
当我继续将我的相机移动靠近或者离远物体或者目标时,我可以用相似三角形来计算出物体离相机的距离:D’
= (W x F) / P 从以上的解释中,可以看到,要想得到距离,就要知道摄像头的焦距和目标物体的大小,这两个已知条件根据公式:D’ = (W x F) / P
得出目标到摄像机的距离D,其中P是指像素距离,W是A4纸的宽度,F是摄像机焦距。