前言
在图像处理中我们有时候会需要将2个区域合并为同一个区域,本文就来介绍如何在Halcon中实现
1、区域合并原理
算子会先将第二个参数Region2中的所有区域进行并集运算,形成一个临时区域,然后再将这个临时区域分别与Region1中的每一个区域进行并集运算。因此,最终输出结果中区域的个数与Region1的个数相同
2、halcon算子应用
csharp
gen_rectangle1(Rectangle1, 100, 100, 200, 300)
gen_circle(Circle, 300, 200, 150)
concat_obj (Circle, Rectangle1, ObjectsConcat)
gen_circle(Circle2,50, 20, 20)
* 将两个区域合并
union2(ObjectsConcat, Circle2, RegionUnion)
count_obj (RegionUnion, Number)
for Index := 1 to 5 by 1
select_obj (RegionUnion, ObjectSelected, Index)
endfor
合并2个区域就是使用union2 算子,该算子有3个参数
第1个参数是输入区域,可以是单个或多个区域组成的元组
第2个参数也是输入区域,可以是单个或多个区域组成的元组
第3个参数是输出区域,合并后的新区域,是两个输入区域(Region)的并集,输出区域的元素个数等于 Region1 的元素个数
3、区域计算
1)输入区域1

2)输入区域2

4)输出
由于输入区域1中包含了两个区域,所以输出的也是两个区域,如下:

