Halcon入门基础——9、区域的逻辑运算-加法

本文介绍了在Halcon图像处理库中如何使用逻辑运算(如并集、交集和补集)对图形区域进行操作,包括通过union1合并离散区域、union2组合区域以及形状选择(矩形和圆形)来实现区域的加法、减法和组合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

逻辑运算一般是三种:交集、并集、补集。
通过这三种运算,可以实现区域之间的 “加法”、“减法”、“交集”的运算。

加法

:其实就是并集,在halcon中使用算子union;
union有两种 : union1和union2
union1 是将图形变量里的离散的区域组成一个区域,特征之一是数量的变化,count 由 >=1 变为 =1
union2 是将两个图形变量组合成一个整体的区域,输出的图形的count数量为1

read_image (Image, 'printer_chip/printer_chip_01')
threshold (Image, Region, 128, 255)
connection (Region, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions2, [&
### Halcon区域逻辑运算算子工作原理 #### 差异操作 `difference` 差异操作用于执行两个区域间的减法运算。具体来说,`difference` 算子会先计算两个输入区域的交集: 如果存在交集,则最终结果为第一个区域去除该交集部分;若无交集,则返回原始的第一个区域不变[^3]。 ```cpp read_image(Image, 'printer_chip/printer_chip_01') gen_rectangle1(Rectangle, 100, 100, 200, 200) gen_rectangle1(Rectangle1, 150, 150, 250, 250) difference(Rectangle, Rectangle1, RegionDifference) dev_display(RegionDifference) ``` 上述代码展示了如何创建两个矩形并通过 `difference` 来获取它们之间相减后的结果,并显示出来。 #### 并集操作 `union1` 和 `union2` 对于并集而言,在 Halcon 中提供了两种不同的方式来处理多个区域之间的合并: - **`union1`**: 将单个图形变量内的所有分离区域合成为一个连续的整体。此过程会使输出对象的数量减少至单一实体。 - **`union2`**: 把来自不同图形变量中的两组或多组区域联合起来形成一个新的整体结构。同样地,这里也会得到仅含有一项的结果集合[^4]。 ```cpp threshold(Image, Region, 128, 255) connection(Region, ConnectedRegions) select_shape(ConnectedRegions, SelectedRegions2, ['rectangularity','area'], 'and', [0.93355,26290.3], [1,50000]) union1(SelectedRegions2, RegionUnion) ``` 这段脚本说明了怎样筛选特定形状特征的对象并将这些符合条件的目标统一成一个更大的连通区。 #### 补充说明 除了以上提到的操作外,还有其他类型的布尔运算可用于定义更复杂的几何关系,比如求取共同覆盖范围即所谓的“交集”。这类功能允许用户灵活构建基于现有轮廓的新形态,从而满足各种应用场景下的需求[^1]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值