halcon学习笔记(10)——标定

          摄像头拍摄时候,图像均有畸变,但是图像的扭曲变形均是有规律的成线性的,所以可以通过算法矫正。矫正的算法可以在网上找到,这里就叙述了。halcon标定过程需要在镜头内放置标定板;标定板一般选用30*30mm的;可以通过halcon程序来制作:

gen_caltab(::XNum,YNum,MarkDist,DiameterRatio,CalTabDescrFile,CalTabPSFile :) 算子来制作一个标定板

           XNum                               每行黑色标志圆点的数量。

           YNum                               每列黑色标志圆点的数量。

           MarkDist                           两个就近黑色圆点中心之间的距离。单位是meter

           DiameterRatio                黑色圆点直径与两圆点中心距离的比值。

           CalTabDescrFile            标定板描述文件的文件路径(.descr)。这两个文件路径是用来存放文件的

           CalTabPSFile                  标定板图像文件的文件路径(.ps),

其中,.descr文件为标定板描述文件,.ps文件为标定板图形文件,可以用photoshop(PS)打开;

halcon学习笔记(10)——标定_第1张图片

一个30*30的标准标定板的示例

1    gen_caltab(7,7,0.00375,0.5,'D:/30_30.descr','D:/30_30.ps')

2    黑色圆点行数:   7

3    黑色圆点列数:   7

4    外边框长度:     30mm*30mm

5    黑色圆点半径:   0.9375mm  (3.75/4)

6    圆点中心间距:   3.75mm

        标定过程可以同过halcon自带的标定助手calibration来操作,具体:

1.打开助手,选择calibration;

halcon学习笔记(10)——标定_第2张图片

2.在安装选择要选用的标定模板,一般caltab_30mm.descr,是30*30模板;

3.选择标定标签,选择图像或者图像采集助手,自带例子加.....MVTec\HALCON-11.0\examples\images\scratch;

halcon学习笔记(10)——标定_第3张图片

4.加载好图像后设定参考位姿;

halcon学习笔记(10)——标定_第4张图片

5.警告级别选择70,即可,如果加载图像中有品质问题的请删除;

halcon学习笔记(10)——标定_第5张图片

6.标定即可;

7.插入代码,生成如下代码即可应用;

halcon学习笔记(10)——标定_第6张图片

       应用方式可以参考如下代码:

read_image(Image,'pioneer')
dev_display (Image)
stop()
rgb1_to_gray(Image,GrayImage)

CamParOriginal:=[0.00219846,-78129.2,5.46495e-06,5.5e-06,318.206,236.732,640,480]
CamParVirtualFixed:=CamParOriginal
CamParVirtualFixed[1]:=0
*上面三条是标定时候的参数
gen_radial_distortion_map(MapFixed,CamParOriginal,CamParVirtualFixed,'bilinear')
*生产径向畸变映射图,
*mapfixed是输出,
*CamParOriginal是标定后的参数,
*CamParVirtualFixed也是输出的参数,
*'bilinear'映射类型
map_image(GrayImage,MapFixed,ImageRectifiedFixed)
*利用映射,消除图像畸变算子
      处理的图像如下:

halcon学习笔记(10)——标定_第7张图片


你可能感兴趣的:(halcon,机器视觉,摄像头,halcon)