15.7 HObject(对象)

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、迭代、正负索引和高效切片的支持。