最近的项目中要做关于一个EPSON机器人和两个康耐视相机之间的手眼标定,而刚好之前有接触过强大的halcon,所以打算利用halcon手眼标定例程来做,在看代码的过程中发现,halcon在标定之前会读取一个.cpd的文件,作为关键词百度,很少有这方面的信息,那只能从halcon的帮助文档中寻找答案了,好在halcon的文档部分是中文的,中间夹杂着英文,相关的信息在如下网址中:
https://www.mvtec.com/doc/halcon/12/en/create_caltab.html
关键的两句:
The file CalPlateDescr contains the calibration plate description, and must be passed to all HALCON operations using the generated calibration plate (e.g. set_calib_data_calib_object or sim_caltab). The default HALCON file extension for the description of a calibration plate with hexagonally arranged marks is 'cpd'.
就是说这个.cpd文件其实是一个标定板的描述文件,而这个文件是通过另一个函数生成的;在利用标定板做标定之前,需要告诉标定函数,这个标定板长什么样,长度多少,宽度多少等等。
A calibration plate description file contains information about:
-
the number of row and columns of the calibration plate
-
the number of marks per row and column
-
the offset of the coordinate system to the plate's surface in z-direction
-
the rim of the calibration plate
-
the polarity of the marks
-
the number and position of finder patterns
-
the x,y coordinates and radius of the calibration marks
A file generated by create_caltab looks like the following (comments are marked by a '#' at the beginning of a line):
(上面这句话就提到了,这个.cpd文件是由create_caltab函数生成的)
create_caltab (27, 31, 0.00258065, [13,6,6,20,20], [15,6,24,6,24], 'light_on_dark', 'F:/calplate.cpd', 'F:/calplate.ps')
利用上面的这段代码,就可以生成一个标定板,这个标定板的相关信息在前面的一些参数里面,并且这个函数输出了两个文件,包括前面说到的一个.cpd文件和.ps文件,在halcon中运行这行代码,在F盘的根目录下面我们就可以得到两个文件,如下图所示:
# Plate Description Version 3
# HALCON Version 12.0 -- Tue Aug 12 15:40:14 2014
# Description of the standard calibration plate
# used for the camera calibration in HALCON
# (generated by create_caltab)
#
#
好了,说了这么多,应该说清楚了,还有好多代码要去一一解读。。。