halcon单相机标定和畸变矫正程序

视觉/图像重磅干货,第一时间送达

新机器视觉

最前沿的机器视觉与计算机视觉技术
206篇原创内容
公众号
转自 | 机器人及PLC自动化应用

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

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

畸变矫正:

在几何光学和阴极射线管(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 ()

Image Acquisition 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)

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

(0)

相关推荐

  • 《HALCON机器视觉与算法原理编程实践》第4章软件图像采集

    文章目录 4.1 获取非实时图像 4.1.2 读取视频文件 4.2 获取实时图像 4.2.1 Halcon的图像采集步骤 4.2.2 使用Halcon接口连接相机 4.2.3 使用相机的SDK采集图像 ...

  • 相机模型与张氏标定

    视觉测量使用的日益广泛和频繁,对于基础知识的学习是掌握机器视觉的学习的关键:本文针对成像模型,坐标系转换和相机标定等知识进行简介,虽然网上相关资料很多,但是本人在学习过程中同样为某些概念所困扰,写下学 ...

  • 3D线激光成像数学模型简析与实现

    点云的获取方式有多种,比如三维成像传感器.Lidar激光探测与测量.逆向工程等... 对于寻常百姓家,后2者的成本是十分昂贵的,所以我们可以尝试玩一下自己搭建三维成像传感器中的一种--3D线激光,一个 ...

  • 《HALCON机器视觉与算法原理编程实践》第13章 相机标定与三维重建

    文章目录 13.1 立体视觉的基础知识 13.1.1 三维空间坐标 13.1.2 3D位姿 13.2 相机标定 13.2.1 相机标定的目的和意义 13.2.2 标定的参数 13.2.3 准备标定板 ...

  • 相机参数估计值如何计算?

    作者:书涵 在三维重建中,标定是很重要的一环,而在所有标定中,单目相机标定是最基础的,对于新手而言,跑通了一个相机标定代码,得到了一堆参数结果,如何判断自己的标定的是对的呢?RMS(重投影误差)小标定 ...

  • Halcon读取文件目录中图像的三种方法

    第1种方法:读取单一图像 read_image(Image,'fabrik') 这种方式可以快速的读取软件自身携带的库图像文件,系统设定了库图像映像文件的快速读取方式,我们也可以通过绝对地址的方式来读 ...

  • 原创 | 《相机标定》深入理解原理与实战(一)

    第 一 章 引言 1.1 为什么要相机标定 首先来看相机标定的意义,我们都知道,我们拍摄的图片是二维的,但是真实世界是三维的.一个场景是如何从三维变成二维的呢?相机起到的就是这个作用.我们可以把相机看 ...

  • 机器视觉之halcon入门(6)-一文弄懂halcon连接相机

    第三章 Halcon 简单例程讲解 第一节 连接相机 3.1.1 简单的啰嗦几句 上一章介绍的两个例子,都是基于现成的图片,进行处理然后转C#.但是工程中,不可能安排一个人一直给程序提供现成的图片.需 ...

  • 【相机标定】开源 | 单视角镜头畸变自动标定的最小求解器,性能SOTA!

    备注:研究方向+地点+学校/公司+昵称,更快通过申请,长按加细分领域技术交流群,目前有细分领域:图像分割.图像目标检测.论文写作.车道检测.模型优化.目标跟踪.SLAM.点云处理(分割检测).深度学习 ...

  • 一文讲透鱼眼相机畸变矫正,及目标检测项目应用

    AI未来星球 PS:<AI未来星球>加入方式,可点击最下方"阅读原文"查看. 分享人:潘大强 社群编号:V010号 分享时间:2021.08.20 21:00 所属方向 ...

  • 单目/鱼眼/双目/阵列 相机标定:原理与实战

    什么是相机标定? 相机标定是指借助专用的标志物(如棋盘格)来估计相机的图像传感器参数(内参.外参)和镜头参数(畸变系数). 它是一种计算相机二维图像和三维世界相对映射关系的一种方法.标定相机过程涉及相 ...

  • 单反相机和微单相机应该如何选

    现在在摄影人眼里比较受欢迎的就是单反相机和微单相机,并且这两种相机所拍摄出来的画质都比较好,那么对于摄影爱好者来说单反相机和微单相机应该怎么选,是选择单反相机还是微单相机. 其实选择的人选择相机都是一 ...

  • 有人认为尼康Z6是一款画质均衡的微单相机你同意吗

    现在相机界的微单相机随着科技的发展渐渐崛起了,现在不管是单反相机的尼康和佳能品牌还是专做稳定相机的索尼都在向微单相机深入,不过对于有着悠久历史的尼康品牌,在微单相机中也有独特的创造力,有的人认为尼康Z ...

  • 源自索尼微单™相机技术 索尼手机Xperia 1 III国行版发布

    2021年5月20日,索尼中国宣布推出5G智能新旗舰Xperia 1 III,新品搭载索尼首款配备双PD传感器的潜望式可变长焦镜头,以及4K HDR OLED 120Hz刷新率屏幕,在影像方面实现创新 ...

  • 微单相机是什么

    微单意思为微型单镜无反电子取景相机,可以涵盖微型和单反两层含义:相机微型.小巧.便携,还可以像单反相机一样更换镜头,并提供和单反相机同样的画质. 松下和奥林巴斯是第一个意识到,如果你取消了数码单反相机 ...

  • 源自索尼微单相机技术 索尼手机Xperia 1 Ⅲ国行版发布

    2021年5月20日,索尼中国宣布推出5G智能新旗舰Xperia 1 Ⅲ,新品搭载索尼首款配备双PD传感器的潜望式可变长焦镜头,以及4K HDR OLED 120Hz刷新率屏幕,在影像方面实现创新性新 ...