原文链接:https://blog.csdn.net/weixin_43197380/article/details/90438976
一、理论
为什么要进行单相机标定?
广义:畸变矫正和一维和二维测量
畸变矫正:
在几何光学和阴极射线管(CRT)显示中。畸变是对直线投影的一种偏移。简单来说直线投影是场景内的一条直线投影到图片上也保持为一条直线。那畸变简单来说就是一条直线投影到图片上不能保持为一条直线了。这是一种光学畸变(optical aberration)。畸变是一种相差,可能由于摄像机镜头导致,会对拍摄的物体的形状产生变化,影响测量。
我自己对畸变矫正的理解就是,当相机进行标定时,虽然标定板也产生了畸变,但是标定板(圆形)的准确数据我们已经告诉了halcon,比如,圆的排列方式、直径、中心距等。通过加载多张标定板图片,halcon可以通过函数求出镜头里发生畸变的标定板与未发生畸变的标定板之间的映射关系,也就是相机本身的内参(拍摄有畸变)和矫正之后无畸变内参之间的映射关系,将这种映射关系作用到拍摄时发生畸变的物体当中,就完成了畸变校正.。
步骤:
1)通过标定求出相机内参。
2)通过有畸变的内参求出无畸变的内参。用chage_radial_distortion_cam_par()函数完成。
3)求出有畸变的内参和无畸变的内参之间的映射关系。用
gen_radial_distortion_map()函数
4)将上边的映射关系作用到产生畸变的物体当中,完成畸变校正
一维和二维的测量
图片上的尺寸是像素距离,标定后,可以求出像素距离与物理空间距离的换算关系,从而计算出实际的物理尺寸。
狭义:求解相机的内参和外参以及畸变参数,得到二维平面像素坐标和三维世界坐标的关系,从而进行三维重建。
相机内参:相机的固有属性,在进行畸变校正时需要用到相机的内参。
相机外参:物体在经过透镜成像之后,实际上是经过了旋转和平移,而外参就是告诉我们物体成像后经过了那种旋转和平移,相机的外参包括平移矢量和旋转矩阵。
畸变参数:采用理想针孔模型,由于通过针孔的光线少,摄像机曝光太慢,在实际使用中均采用透镜,可以使图像生成迅速,但代价是引入了畸变。有两种畸变对投影图像影响较大: 径向畸变和切向畸变。
相机的畸变和内参是相机本身的固有特性,标定一次即可一直使用。但由于相机本身并非理想的小孔成像模型以及计算误差,采用不同的图片进行标定时得到的结果都有差异。一般重投影误差很小的话,标定结果均可用。
二、标定流程
实现的原理是根据相机的像元尺寸、焦距和标定板的描述文件(.descr)来找到显示的标定板图像上面的标志点,从而确定标定板实际输入的参数(Distance、Diameter等)和这些参数对应的图像像素大小的关系,完成标定。
这里我用的标定板是7*7圆点标定板,型号:HC070—3.75

标定板数据可参考:

本文介绍单相机标定的意义与流程,重点解释畸变校正的方法及其实战应用,通过实例展示了如何利用Halcon进行相机标定与测量。

1802

被折叠的 条评论
为什么被折叠?



