HObject 是一个表示图标对象的类。
在 HALCON 中,图标对象是层次结构的模型:
HALCON/Python 并没有用类层次结构来模拟这种对象层次结构,而是只提供了一个类 HObject。
HALCON 中的图标对象可以表示对象集合,如一系列图像或多个区域等。HALCON/Python 反映了这一行为:
img = ha.read_image('pcb') img_seq = ha.concat_obj(img, ha.read_image('fuse')) width, height = ha.get_image_size(img_seq) assert width == [1109, 768] assert height == [871, 576]
在这里,img_seq 表示两幅图像,而 get_image_size 等后续算子则相应地以批处理方式工作。
HObject 的行为类似于 Python 中的列表:
assert len(img_seq) == 2 for single_img in img_seq: assert ha.get_image_size_s(single_img) > (600, 400) assert ha.get_image_size_s(img_seq[1]) == (768, 576) assert ha.get_image_size_s(img_seq[-2]) == (1109, 871) assert ha.get_image_size(img_seq[:4]) == ([1109, 768], [871, 576]) assert ha.get_image_size(img_seq[1:4]) == ([768], [576])
这包括对 len、迭代、正负索引和高效切片的支持。