QQ登录

只需一步,快速开始

halcon 对象OBJECT操作相关函数介绍

[ 复制链接 ]
1.copy_obj(Objects : ObjectsSelected : Index, NumObj : )
将参数Objects 复制到ObjectsSelected ,
Objects 中要被复制对象索引和个数由 Index, NumObj 指定。
例程
read_image (Image,'patras')
gen_empty_obj (EmptyObject)
copy_obj (Image, EmptyObject, 1, 1)


2.clear_obj(Objects : : : )
删除一个对象,建议使用dev_clear_obj。
例程
read_image (Image,'patras')
gen_empty_obj (EmptyObject)
copy_obj (Image, EmptyObject, 1, 1)
dev_clear_obj (EmptyObject)


3.gen_empty_obj( : EmptyObject : : )
生成一个无对象的元组,例程如上。

4.concat_obj(Objects1, Objects2 : ObjectsConcat : : )
将Objects1, Objects2以ObjectsConcat = [Objects1,Objects2]形式组合。
例程
read_image (Image,'patras')
read_image (Image1, 'printer_chip/printer_chip_01')
gen_empty_obj (EmptyObject)
copy_obj (Image, EmptyObject, 1, 1)
concat_obj (EmptyObject, Image1, ObjectsConcat)


5.select_obj(Objects : ObjectSelected : Index : )
从Objects中选择第Index个图像对象,保存到ObjectSelected 。Index 从1开始计数。
例程
read_image (Image,'patras')
read_image (Image1, 'printer_chip/printer_chip_01')
gen_empty_obj (EmptyObject)
copy_obj (Image, EmptyObject, 1, 1)
concat_obj (EmptyObject, Image1, ObjectsConcat)
select_obj (ObjectsConcat, ObjectSelected, 2)


6.insert_obj(Objects, ObjectsInsert : ObjectsExtended : Index : )
将ObjectsInsert内元素插入到Objects的位置Index 中,返回ObjectsExtended 。
Index 从1开始计数。
例程:
read_image (Image,'patras')
read_image (Image1, 'printer_chip/printer_chip_01')
gen_empty_obj (EmptyObject)
copy_obj (Image, EmptyObject, 1, 1)
concat_obj (EmptyObject, Image1, ObjectsConcat)
read_image (Image2,'rings_and_nuts')
insert_obj (ObjectsConcat, Image2, ObjectsExtended, 1)


7.obj_to_integer(Objects : : Index, Number : SurrogateTuple)
obj_to_integer,从索引Index开始Number ,输入对象Objects 的数据库Keys以整数存储到SurrogateTuple
Number 传递-1,从Index开始的对象被复制。
这有助于直接访问Objects 的任意元素。
与count_obj(返回对象中对象的数量)相结合,可以连续处理对象的元素。
对象并没有被obj_to_integer复制,因此必须不被clear_obj清除。
例程
read_image (Image, 'printer_chip/printer_chip_01')
read_image(Image1, 'fuse')
concat_obj (Image, Image1, ObjectsConcat)
obj_to_integer(ObjectsConcat,1,1,Surrogat)



8.integer_to_obj( : Objects : SurrogateTuple : )
将一个整数转换为图形对象,功能和obj_to_integer相反。
例程
read_image (Image, 'printer_chip/printer_chip_01')
read_image(Image1, 'fuse')
concat_obj (Image, Image1, ObjectsConcat)
obj_to_integer(ObjectsConcat,1,1,Surrogat)
integer_to_obj (Objects, Surrogat)


9.obj_diff(Objects, ObjectsSub : ObjectsDiff : : )
obj_diff计算两个对象元组的集理论差:
(objects in Objects) - (objects in ObjectsSub)

结果对象元组ObjectsDiff被定义为从Objects中删除ObjectsSub的元组对象。
例程
read_image (Image, 'particle')
threshold (Image, Region, 57, 255)
connection (Region, ConnectedRegions)
select_shape (ConnectedRegions, LeftRegions, 'column', 'and', 0.0, 256.0)
obj_diff (ConnectedRegions, LeftRegions, RightRegions)

10.remove_obj(Objects : ObjectsReduced : Index : )
从Objects 的索引Index (>0)删除一个元素,剩余元素保存在ObjectsReduced
例程
read_image (Image, 'particle')
threshold (Image, Region, 57, 255)
connection (Region, ConnectedRegions)
count_obj (ConnectedRegions, Number)
for i:=1 to Number by 1
    remove_obj (ConnectedRegions, ObjectsReduced, i)
endfor

11.replace_obj(Objects, ObjectsReplace : Replaced : Index : )
函数用ObjectsReplace 替换Objects中索引Index (>0)的对象。结果存储在Replaced 。
例程
gen_empty_obj (Images)
for Index := 1 to 3 by 1
  gen_image_const (Image, 'byte', Index, Index)
  concat_obj (Images, Image, Images)
endfor
read_image (Image1, 'printer_chip/printer_chip_01')
replace_obj (Images, Image1, Images, 1)





12.select_mask_obj(Objects : SelectedObjects : Mask : )
根据掩码Mask内元素,从Objects 内选择元素保存到SelectedObjects
Objects ,Mask 得含相同元素个数。
Mask 仅能含整数或浮点数。
例程
read_image (Image, 'tooth_rim')
edges_sub_pix (Image, Edges, 'canny', 1, 20, 40)
test_closed_xld (Edges, IsClosed)
* 选择闭合轮廓.
select_mask_obj (Edges, ClosedContours, IsClosed)
* 选择未闭合轮廓
select_mask_obj (Edges, OpenContours, not IsClosed)

回复

使用道具 举报

快速回复 返回列表 客服中心 搜索