首页 > 编程知识 正文

halcon标定移动摄像机(如何将双相机标定在一个视场)

时间:2023-05-04 04:21:47 阅读:91692 作者:4032

建立标定数据模型

可以使用操作员create_calib_data建立标定数据模型,指定摄像机和标定物体的数量。 使用摄像机时,也使用其他标定物体。

而你应该做的是:

指定摄像机内部参数的初始值,记述标定物体

指定相机内参数的初始值

可以使用操作符set_calib_data_cam_param设定照相机内部参数。

除了标定数据模型外,操作员还需要以下参数作为输入

相机idx :相机索引(0表示单个相机)相机类型:相机类型相机参数初始值元组:相机

使用那个应变模型

区域相机可以使用两种应变模型:分割模型和多项式模型。 分割模型用一个参数构造径向时滞,多项式模型用五个参数构造径向时滞和离心时滞。

分割模型的优点是可以快速应用变形,特别是在世界坐标映射到图像平面时。 另外,如果标定图像只使用了几张,或者视野没有被充分覆盖,分割模型会得到比多项式模型更稳定的结果。 多项式模型的主要优点是可以更准确地构造应变,因为它用更高次的项构造径向应变,也构造离心应变。 请注意,多项式模型是不可逆推的。 因此,逆失真需要通过迭代计算来看,比分割模型的逆失真计算要慢。

一般来说,划分模型应该用于标定。 标定的精度不高的话,可以使用多项式模型。 但是,请注意,用于多项式模型的标定序列必须提供完整的区域复盖,该区域稍后将用于测量。 应变有可能在没有被标定板复盖的区域之外形成不正确的结构。 这也会发生在图像的边缘,以及标定板未涵盖的视野区域的内部。

说明标定物体

可以使用操作符set_calib_data_calib_object指定标定物体所需的信息。

如果使用的是HALCON的标定板,对应的描述文件名就足够了。

如何得到合适的标定板

确定CCD摄像机摄像机参数的最简单方法是利用HALCON的标定板,如图1所示。 在这种情况下,自动执行查找标定手柄的整个过程、标定标记点的提取、标定标记点的提取和各自3D世界坐标的对应关系的确定。 更重要的是,标定板更加准确,在1um以下,这是高精度应用的前提条件。

支持两种HALCON标定板。 特别是,可以进行六角形排列的标记点和矩形排列的标记点的标定板。 六角形排列的标定板由HALCON12引入,在许多APP中得到推荐。 因为与矩形排列的标识点的标定板相比,有以下优点。

带有l形排列标记点的标定板应该充满图像视野的四分之一。 为了涵盖包括不同倾斜度在内的整个视野,需要很多图像(至少10到20张)。 由于六角形排列的标定板包含许多标记点,因此一个图像可以复盖整个图像面积,需要用更少的图像(6到7张)得到可比较的标定结果。

l排列成矩形的标记点的标定板必须在图像的全部中都能看到,但排列成六角形的标定板可以超出图像的边缘。 再者,放置标定板时,后者不需要太在意。 标定板图像的获取不会损失稳定性,更快、更方便。

六角形排列的标定板必须在一张图像上填满整个图像区域。 排列成长方形的标定板必须复盖图像区域的至少九分之一。 为了提高标定的质量,建议一个标定板覆盖图像区域的至少四分之一。

图1 )不同材质和尺寸的HALCON标定板() a )排成六角的标记点) ) b )排成矩形的标记点

使用你自己的标定物体

如果使用HALCON,则不限于使用HALCON标定板之类的平面标定板。 可以使用3D标定板和任意的特征点(自然的标识)。 需要的只是模型点的3D世界的位置,具有高精度。

然后,只需将标定物体的所有点(标记点)的3D坐标作为元组传递给运算符set_calib_data_calib_object的CalibObjeDescr即可。 所有点的x、y、z坐标必须按照【x、y、z】元组的顺序包装。

但主要需要的是,如果使用自己的标定物,就不能使用find_calib_object了。 相反,必须自己决定模型点的2D位置和3D点的对应关系。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。