工控编程吧
标题:
halcon 对象OBJECT操作相关函数介绍
[打印本页]
作者:
qq263946146
时间:
2019-5-10 23:36
标题:
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)
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4