0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

为什么要进行单相机标定

新机器视觉 来源:CSDN技术社区 作者:丶布布 2021-09-02 09:45 次阅读

为什么要进行单相机标定?

广义:畸变矫正和一维和二维测量

畸变矫正:

在几何光学和阴极射线管(CRT)显示中。畸变是对直线投影的一种偏移。简单来说直线投影是场景内的一条直线投影到图片上也保持为一条直线。那畸变简单来说就是一条直线投影到图片上不能保持为一条直线了。这是一种光学畸变(optical aberration)。畸变是一种相差,可能由于摄像机镜头导致,会对拍摄的物体的形状产生变化,影响测量。

我自己对畸变矫正的理解就是,当相机进行标定时,虽然标定板也产生了畸变,但是标定板(圆形)的准确数据我们已经告诉了halcon,比如,圆的排列方式、直径、中心距等。

通过加载多张标定板图片,halcon可以通过函数求出镜头里发生畸变的标定板与未发生畸变的标定板之间的映射关系,也就是相机本身的内参(拍摄有畸变)和矫正之后无畸变内参之间的映射关系,将这种映射关系作用到拍摄时发生畸变的物体当中,就完成了畸变校正。。

步骤:

1)通过标定求出相机内参。

2)通过有畸变的内参求出无畸变的内参。用chage_radial_distortion_cam_par()函数完成。

3)求出有畸变的内参和无畸变的内参之间的映射关系。用

gen_radial_distortion_map()函数

4)将上边的映射关系作用到产生畸变的物体当中,完成畸变校正

一维和二维的测量

图片上的尺寸是像素距离,标定后,可以求出像素距离与物理空间距离的换算关系,从而计算出实际的物理尺寸。

狭义:求解相机的内参和外参以及畸变参数,得到二维平面像素坐标和三维世界坐标的关系,从而进行三维重建。

相机内参:相机的固有属性,在进行畸变校正时需要用到相机的内参。

相机外参:物体在经过透镜成像之后,实际上是经过了旋转和平移,而外参就是告诉我们物体成像后经过了那种旋转和平移,相机的外参包括平移矢量和旋转矩阵。

畸变参数:采用理想针孔模型,由于通过针孔的光线少,摄像机曝光太慢,在实际使用中均采用透镜,可以使图像生成迅速,但代价是引入了畸变。有两种畸变对投影图像影响较大:径向畸变和切向畸变。

相机的畸变和内参是相机本身的固有特性,标定一次即可一直使用。但由于相机本身并非理想的小孔成像模型以及计算误差,采用不同的图片进行标定时得到的结果都有差异。一般重投影误差很小的话,标定结果均可用。

二、标定流程

实现的原理是根据相机的像元尺寸、焦距和标定板的描述文件(.descr)来找到显示的标定板图像上面的标志点,从而确定标定板实际输入的参数(Distance、Diameter等)和这些参数对应的图像像素大小的关系,完成标定。

标定步骤:

1)使用gen_caltab算子生成一个标定文件

标定前需要生成一个.descr的描述文件,也就是世界坐标系与像素坐标系的关系,当我们下一次做别的项目时,只需要调用描述文件,即可完成标定过程。

生成标记文件的算子:gen_caltab (7, x方向的标记数;

7, y方向的标记数;

0.0075, 标记点圆心之间的距离,单位:米;

0.5, 标记点直径与标记点圆心之间距离的比值;

‘C:/Users/Administrator/Desktop/caltab.descr’,标定板的描述文件的保 存路径;

‘caltab.ps’,描述标定板的一些信息,打印标定板时会用到)

2)打开标定助手,加载标定文件,设置相机参数(单个像元宽高(问相机厂商或看手册),相机焦距)

3)实时获取各个角度、位置的标定板图片(9-16张左右),并选择其中一种图片设置参考位姿,然后标定。

可以看到相机的参数:

4)保存相机内、外参,下次使用测量助手直接调用内外参文件。

单独说一下如何进行畸变校正,可以接上面的第三步之后:生成标定数据(相机内、外参)代码,从而进行畸变校正

*相机内参

CameraParameters := [0.0375147,-270.806,8.30152e-006,8.3e-006,647.48,520.914,1280,960]

*相机位姿,即外参(旋转矩阵+平移矢量)

CameraPose := [-0.0091626,-0.00625214,0.700967,2.46926,358.933,179.443,0]

*1、校正径向畸变,得到新的相机内参

change_radial_distortion_cam_par (‘adaptive’, CameraParameters, 0, CamParamOut)

stop ()

ImageAcquisition 02: Code generated by Image Acquisition 02

open_framegrabber (‘GigEVision’, 0, 0, 0, 0, 0, 0, ‘default’, -1, ‘default’, -1, ‘false’, ‘default’, ‘CAMERA_QBY_DM’, 0, -1, AcqHandle)

grab_image_start (AcqHandle, -1)

while (true)

grab_image_async (Image, AcqHandle, -1)

*2、对发生径向畸变的图像生成投影映射,图像的映射数据存在第一个参数中

gen_radial_distortion_map (Map, CameraParameters, CamParamOut, ‘bilinear’)

*3、对图像进行畸变校正

map_image (Image, Map, ImageMapped)

endwhile

close_framegrabber (AcqHandle)

注意:相机标定之后,相机焦距、上下位置不能再动,否则需要重新标定。

—版权声明—

仅用于学术分享,版权属于原作者。

若有侵权,请联系微信号删除或修改!

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相机
    +关注

    关注

    4

    文章

    1293

    浏览量

    53010
  • crt
    crt
    +关注

    关注

    2

    文章

    80

    浏览量

    35762
  • 函数
    +关注

    关注

    3

    文章

    4217

    浏览量

    61866

原文标题:halcon单相机标定和畸变矫正程序

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    工业相机测长仪的组成部分

    、防尘系统:采用一体式外壳对 相机 进行包裹密封,镜头前设置视窗镜片,避免在长期的使用中灰尘遮挡工业 相机而导致数据采集错误,日常维护仅需对镜头 进行擦拭即可;
    发表于08-27 17:45

    C#之Delta并联机械手的视觉相机标定与形状匹配

    本文主要介绍如何通过正运动VPLC711视觉接口来实现 相机 标定和形状匹配功能。
    的头像 发表于06-26 15:11 604次阅读
    C#之Delta并联机械手的视觉<b class='flag-5'>相机</b><b class='flag-5'>标定</b>与形状匹配

    相机标定技术的性能分析与工具比较

    相机在从遥感、测绘、机器人技术到内窥镜等一系列应用中都是不可或缺的。这些应用通常需要了解 相机中真实世界点和它们在图像中的几何关系。
    发表于04-30 09:28 592次阅读
    <b class='flag-5'>相机</b><b class='flag-5'>标定</b>技术的性能分析与工具比较

    工业相机单目和双目的区别

    工业 相机 标定的方法根据工业 相机的数目可分为单目 标定、双目 标定Q以及多目 标定
    的头像 发表于03-26 16:26 1122次阅读
    工业<b class='flag-5'>相机</b>单目和双目的区别

    机器人知识:2D相机三维补正设置技巧

    3台 相机的三维补正中,推荐采用在机器人上安装点阵板 进行 标定标定时有如下需要注意的地方。
    发表于03-26 14:16 216次阅读
    机器人知识:2D<b class='flag-5'>相机</b>三维补正设置技巧

    相机标定中的坐标变换原理难点分析

    相机 标定中的基本坐标系有:像素坐标系、图像坐标系、 相机坐标系、世界坐标系,这些坐标系之间都有一定的转换关系,若这些转换关系已知,就可以得到世界坐标(棋盘上的点)和像素坐标之间的关系。
    发表于12-19 10:42 726次阅读
    <b class='flag-5'>相机</b><b class='flag-5'>标定</b>中的坐标变换原理难点分析

    单相电机为什么加电容,有啥作用?

    单相电机为什么 加电容,有啥作用? 单相电机需要添加电容器主要是为了实现起动以及提高功率因素。下面将详细讨论电容器在 单相电机中的作用。 首先,需要明确的是,
    的头像 发表于12-07 13:54 4033次阅读

    ADC自身噪声怎么进行标定

    请问一下,ADC自身噪声怎么 进行 标定?可以通过简单将输入短接 进行噪声计算吗?或者使用信号源 进行不同输入下的噪声分析?谢谢了
    发表于12-07 07:30

    采集激光雷达和相机的初始标定数据

    ROS功能包:livox_camera_lidar_calibration提供了一个手动校准Livox雷达和 相机之间外参的方法,已经在Mid-40,Horizon和Tele-15上 进行了验证。 其中
    的头像 发表于11-28 11:09 394次阅读
    采集激光雷达和<b class='flag-5'>相机</b>的初始<b class='flag-5'>标定</b>数据

    相机标定中各种标定板介绍以及优缺点分析

    在选择 标定板时,一个重要的考虑因素是它的物理尺寸。这最终关系到最终应用的测量视场(FOV)。这是因为 相机需要聚焦在特定的距离上 标定。改变焦距长度会轻微地影响对焦距离,这会影响之前的 标定
    的头像 发表于11-25 14:36 772次阅读
    <b class='flag-5'>相机</b><b class='flag-5'>标定</b>中各种<b class='flag-5'>标定</b>板介绍以及优缺点分析

    什么是视觉标定,机器人标定基本原理

    那么什么是 标定呢? 标定(calibration)包含两方面的意思:一是指使用标准的计量仪器对所使用仪器或设备的准确度(精度) 进行检测,确认是否符合标准;二是校准,消除误差。
    发表于11-10 10:09 1996次阅读
    什么是视觉<b class='flag-5'>标定</b>,机器人<b class='flag-5'>标定</b>基本原理

    相机标定究竟在标定什么?

    这个逼近的过程就是「 相机 标定」,我们用简单的数学模型来表达复杂的成像过程,并且求出成像的反过程。 标定之后的 相机,可以 进行三维场景的重建,即深
    的头像 发表于10-18 17:00 817次阅读
    <b class='flag-5'>相机</b><b class='flag-5'>标定</b>究竟在<b class='flag-5'>标定</b>什么?

    基于激光雷达相机的在线外部标定算法

    本文提出了一种自动在线激光雷达 相机标定方法CFNet。CFNet是全自动的,不需要特定的校准场景、校准目标和初始校准参数。我们定义一个校准流来表示初始投影点的位置与地面真值之间的偏差。
    发表于10-10 11:44 728次阅读
    基于激光雷达<b class='flag-5'>相机</b>的在线外部<b class='flag-5'>标定</b>算法

    常用视觉的三种相机标定总结

    选中Export Camera Parameters按钮,将计算得到的相关参数导入到Matlab中;若要 进行更精确的 标定,可在 标定时考虑畸变误差或采用双目 相机
    发表于10-09 10:51 1280次阅读
    常用视觉的三种<b class='flag-5'>相机</b><b class='flag-5'>标定</b>总结

    汽车电子激光雷达和相机的自动在线外参标定技术

    为了解决外参逐渐漂移的问题,提出了一种基于线的方法,可以在真实场景中实现激光雷达和 相机的自动在线外参 标定。首先,从点云和图像中提取和过滤线特征。然后,利用自适应优化方法提供精确的外部参数。然后在KITTI基准上用地面真值对其 进行
    发表于08-31 10:50 785次阅读
    汽车电子激光雷达和<b class='flag-5'>相机</b>的自动在线外参<b class='flag-5'>标定</b>技术