concat合并的数组会有顺序么_浅谈concat与union的区别

本文介绍了机器视觉软件Halcon中的concat和union算子在处理region、图片和XLD等对象时的不同之处。concat将对象组合但保持独立,而union则导致对象合并成单一实体。此外,文章还探讨了这两个算子在处理数组时的特殊行为,特别是tuple_concat和tuple_union,前者简单地连接数组,后者去除重复并排序。
摘要由CSDN通过智能技术生成

机器视觉之halcon入门(27)-浅谈concat与union的区别

(1)

如果你有n个region/图片/xld等要存在一起,那么你可以用下面这个算子(图3-16-1):

4050c368e721685b821c4890207ed5c1.png

图3-16-1

它的意思是把两个object放到一起存放,但是依然各过各的,效果如下:

1cc17ba13cfac1d7ec64a77ee9632172.png

Object1还是object1,object2还是object2,只是住进了同一个小区objectsConcat。其实有点像C#里面的List,只是list可以向数组一样的提取里面的每一个元素,这里不行,需要用下面这个算子(图3-16-2):

370ced0395ba31001a133a63de1484f9.png

图 3-16-2

第一个参数是小区名,最后一个参数是门牌号,即第几户人家,中间一个参数就是你选的门牌号的那一家object了。注意:第一个的Index是1,不是0。

(2)

Concat_obj与union有点像,都是把多个object合并到一起,但是他们的区别是:1) 结果不一样:union完之后,object就完全变成了一个了,不再好分开,而concat只是把objects放到一起,没有实质上的合并;

2)适用范围不一样:union不能对图片进行合并;

(3)

这个两个算法好像都不能对数组进行操作,其实不然,只是halcon里面对数组的操作大多数都是tuple开头,所以这两个算子也变成了下面两个

f5a33bc28043beac4b6af025dd1d4aba.png

图 3- 16 - 3

同时意义也稍许有了变化。如上图(图 3-16-3),tuple_concat其实是把2个数组用"狗尾续貂"的方式合并成了一个,就是什么都不管,第二个数组续在第一个后面就可以了。而tuple_union不单单合并两数组,还会去掉重复的值,还会给同一类型的数值进行排序!比如(图 3-16-4):

e4138822d3308a1da7eb628bc38bf37b.png

图 3-16-4

关于这一点,我得在下一篇文章里面单独拎出来好好说说,因为我发现了halcon的帮助文档竟然写错了!想一个好点的标题先,嘿嘿~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值