点击上方“新机器视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达
转自:微信公众号AI图像
创建标定数据模型
你可以用算子create_calib_data创建一个标定数据模型,指定相机和标定物体的数量。当用一个相机的时候,你也用一个单独的标定物体。
然后,你要做的是:
指定相机内部参数的初始值
描述标定物体
指定相机内参的初始值
你可以用算子set_calib_data_cam_param来设置相机内部参数。
除了标定数据模型,算子也需要下面的参数作为输入:
CameraIdx:相机的索引(0代表单个相机)
CameraType: 相机的类型
CameraParam: 相机内参初始值的一个元组
那种畸变模型去使用
对于面阵相机,两种畸变模型可供使用:划分模型和多项式模型。划分模型用一个参数来构造径向畸变,多项式模型用5个参数来构造径向和离心畸变。
划分模型的优势是畸变可以被快速的应用,尤其是对于反向畸变,例如如果世界坐标被映射到图像平面。还有,如果只有几张标定图像被使用或者视野覆盖不足,划分模型则会比多项式模型得到更稳定的结果。多项式模型的主要优势是它可以更精确的构造畸变,因为其用了更高阶的项去构造径向畸变,并且它也构造了离心畸变。需要注意的是,多项式模型不能够反推。因此,反向畸变必须被迭代计算看,其要比划分模型反向畸变的计算要慢。
一般的,划分模型应该被用来标定。如果标定的精度不高,可以用多项式模型。但是需要注意的是,被用于多项式模型的标定序列必须提供一个完整的区域覆盖,这个区域在后边用于测量。畸变可能会在没有被标定板覆盖的区域外边被不准确的构造出来。这种情况发生在图像边缘,也发生在标定板没有覆盖到的视野区域内部。
描述标定物体
用算子set_calib_data_calib_object,你可以指定标定物体所需的信息。
如果你用的是HALCON的标定板,对应的描述文件名字就足够了。
如何获得一个合适的标定板
确定给CCD相机的相机参数最简单的方法就是利用HALCON的标定板(如图1所示)。在这种情况下,找标定把的整个过程,提取标定标志点,以及决定提取标定标志点和各自3D世界坐标之间的对应关系都可以自动的被执行。更重要的是,标定板更加精确,1um或更小,对于高精度的应用其是前提条件。
两种类型的HALCON标定板是被支持的。尤其是,六角形排列的标志点和矩形排列的标志点的标定板是可行的。具有六角形排列的标定板是在HALCON12中引进的,在大多数应用中被推荐使用,因为相比于矩形排列标志点的标定板,其提供了如下的优点:
l 具有