halcon的数据类型
halcon的两类参数:图形参数Iconic (image, region, XLD)与控制参数Control (string, integer, real, handle)
在Halcon算子的参数中,依次顺序为:输入图形参数、输出图形参数、输入控制参数、输出控制参数;并且其输入参数不会被算子改变。
1、图形参数Hobject:
1)Images
在Halcon中,Image = Channel + Domain , 像素点存放在Channel矩阵中,根据ROI来描述Image。
2)Regions
以行列坐标形式储存,有广泛的应用,特点是高效,可利用同态算子。比如用阈值对图像分割的结果,其他系统中称为BOLB,AREA等。
3)Extended Line Description (XLD)
图像均用像素点保存,而像素点是整型的,不连续的,Halcon做了拓展,定义了亚像素(subpixel)的描述几何轮廓的对象:xld,主要用在亚像素测量的背景下,可用于如提取边缘、构建轮廓等等,xld在模板匹配、图形校准等多方面有重要的用途。
2、控制参数HTuple
halcon中最重要的数据类型HTuple,在C++里面,halcon将HTuple类型封装了类,其始祖类HRootObject,这个类相当于MFC里面的CObject,halcon从HRootObject派生了HBaseArray,当然这两个类是虚基类,有一些方法需要我HTuple自己实现,当然也有一些方法可以直接用的。这两个类在HCPPUtil里,可以看到。
1)HTuple类就是从HBaseArray派生,元组基类,相当于数组,具有如下的构造函数:
HTuple(int l); HTuple(float f); HTuple(double d); HTuple(const char *s); HTuple(const HCtrlVal &c); HTuple(const HTuple &in):HBaseArray() {CopyTuple(in);} HTuple(Hlong length, const HTuple &value); HTuple(const HTuple &length, const HTuple &value); HTuple(SpecialTuple d)
2)HTuple对各种操作符进行了重载
operator HCtrlVal(void) const; HTuple operator () (Hlong min, Hlong max) const; HTuple operator () (const HTuple &min, const HTuple &max) const; HCtrlVal &operator [] (Hlong index); HCtrlVal operator [] (Hlong index) const; HCtrlVal &operator [] (const HTu