机器视觉之halcon入门(27)-浅谈concat与union的区别
(1)
如果你有n个region/图片/xld等要存在一起,那么你可以用下面这个算子(图3-16-1):
它的意思是把两个object放到一起存放,但是依然各过各的,效果如下:
Object1还是object1,object2还是object2,只是住进了同一个小区objectsConcat。其实有点像C#里面的List,只是list可以向数组一样的提取里面的每一个元素,这里不行,需要用下面这个算子(图3-16-2):
第一个参数是小区名,最后一个参数是门牌号,即第几户人家,中间一个参数就是你选的门牌号的那一家object了。注意:第一个的Index是1,不是0。
(2)
Concat_obj与union有点像,都是把多个object合并到一起,但是他们的区别是:1) 结果不一样:union完之后,object就完全变成了一个了,不再好分开,而concat只是把objects放到一起,没有实质上的合并;
2)适用范围不一样:union不能对图片进行合并;
(3)
这个两个算法好像都不能对数组进行操作,其实不然,只是halcon里面对数组的操作大多数都是tuple开头,所以这两个算子也变成了下面两个
同时意义也稍许有了变化。如上图(图 3-16-3),tuple_concat其实是把2个数组用"狗尾续貂"的方式合并成了一个,就是什么都不管,第二个数组续在第一个后面就可以了。而tuple_union不单单合并两数组,还会去掉重复的值,还会给同一类型的数值进行排序!比如(图 3-16-4):
关于这一点,我得在下一篇文章里面单独拎出来好好说说,因为我发现了halcon的帮助文档竟然写错了!想一个好点的标题先,嘿嘿~~