HALCON/C++ 中图标参数类的基类是 HObject 类,它负责管理数据库中的条目,即复制或释放对象。HObject 类可以包含所有类型的图标对象。这样做的好处是,像 DispObj() 这样的重要方法可以以相同的方式应用于所有图标对象。
从根类 HObject 派生了三个类:
下文将详细介绍这些类别。
区域是图像平面上的一组坐标。该区域不需要连接,也可能包含孔洞。区域可以大于实际图像格式。区域用 HALCON 中所谓的游程编码来表示。类 HRegion 代表 HALCON/C++ 中的一个区域。除了可以通过 HRegion 调用的算子(另见 "通过类调用算子" 一节 )外,HRegion 还提供了以下成员函数:
HALCON 图像不仅仅是一个像素矩阵: 在 HALCON 中,这种矩阵被称为通道,图像可能由一个或多个这样的通道组成。例如,灰度图像由一个通道组成,彩色图像由三个通道组成。通道不仅可以包含用于表示灰度值图像的标准 8 位像素(像素类型byte),HALCON 还允许图像包含各种其他数据,例如用于表示导数的 16 位整数(类型 int2 )或 32 位浮点数(类型 real )。除了像素信息外,每个 HALCON 图像还以 HALCON 区域的形式存储所谓的域。该域可解释为感兴趣的区域,也就是说,HALCON 算子(除个别情况外)的处理仅限于该区域。
XLD 是扩展线描述(eXtended Line Description)的缩写。这是一种数据结构,用于描述区域(如任意大小的区域或多边形)或任何封闭或开放的轮廓,即线。与以像素精度表示所有区域的区域不同,XLD 对象提供亚像素精度。XLD 有两种基本结构:轮廓和多边形。
HALCON/C++ 提供了一个基类 HXLD 和一组从 HXLD 派生的专用类,例如用于轮廓的 HXLDCont 或用于多边形的 HXLDPoly。
与前几节描述的类不同,XLD 类只提供与 HALCON 算子相对应的成员函数(另见 "通过类调用算子" 一节 )。