因爱智能

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

http://blog.csdn.net/abcvincent/article/details/52986467

摄像头拍摄时候,图像均有畸变,但是图像的扭曲变形均是有规律的成线性的,所以可以通过 算法矫正。矫正的算法可以在网上找到,这里就叙述了。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)打开;


一个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;


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

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


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


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


6.标定即可;

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


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

[plain] view plain copy

  1. read_image(Image,'pioneer')  
  2. dev_display (Image)  
  3. stop()  
  4. rgb1_to_gray(Image,GrayImage)  
  5.   
  6. CamParOriginal:=[0.00219846,-78129.2,5.46495e-06,5.5e-06,318.206,236.732,640,480]  
  7. CamParVirtualFixed:=CamParOriginal  
  8. CamParVirtualFixed[1]:=0  
  9. *上面三条是标定时候的参数  
  10. gen_radial_distortion_map(MapFixed,CamParOriginal,CamParVirtualFixed,'bilinear')  
  11. *生产径向畸变映射图,  
  12. *mapfixed是输出,  
  13. *CamParOriginal是标定后的参数,  
  14. *CamParVirtualFixed也是输出的参数,  
  15. *'bilinear'映射类型  
  16. map_image(GrayImage,MapFixed,ImageRectifiedFixed)  
  17. *利用映射,消除图像畸变算子  
      处理的图像如下:

评论