Halcon参考手册, 第二十章 Morphology, 形态 (持续更新中)

第二十章 Morphology, 形态

20.1 Gray Values (...), 灰度值

本章描述了灰度值形态学的算子。

20.1.1 灰度值形态学的概念

灰度值形态学提供了一组运算符,这些运算符允许对图像中的灰度值进行非线性操作,这取决于它们的像素邻域。例如,形态学灰度值算子可以用来平滑或增强图像中的结构特征。与形态学/区域中的二进制操作不同,形态学灰度值运算符处理包含范围大于1位的像素的输入图像。因此,灰度值形态学可以看作是区域形态学的一种推广。在下面的段落中,我们将仔细研究形态学灰度值运算符。

20.1.2 灰度图像的膨胀和腐蚀

为了执行膨胀蚀,图像的每个像素根据其邻域分配一个灰度值。影响每个像素的邻域的面积和形状由所选的结构元素定义,以当前像素为参考点。实现膨胀,输入图像的每个像素被赋予其邻域的最大灰度值,分别为腐蚀的最小灰度值。因此,输入图像的明亮区域通过灰度值膨胀被放大,而灰度值腐蚀则增强黑暗区域。

(1)原始灰度值图像,(2)原点有参考点的结构元素,(3)腐蚀输入图像的结果,(4)膨胀输入图像的结果。

这些操作符可用于膨胀蚀图像:

形态学灰度运算通常是图像预处理的一部分,然后才能正确提取信息。下面的示例显示了一种情况,其中必须使用灰度值腐蚀来读取数据代码符号。为了适应用于解码的数据模型,需要通过扩大方形的局部最小值来减小图像中编码元素之间的间隙。因此,使用适当大小的矩形作为结构元素,执行灰度值腐蚀。矩形大小取决于使用create_data_code_2d_model创建的数据模型,其中确定了可接受的模块间隙大小。

(1)编码对象图像;(2)方形结构元素腐蚀;(3)应用数据模型进行解码。这些图像来自示例程序2d_data_codes_minimize_module_gap .hdev。

20.1.3 开启和闭合

灰度值开启运算符和灰度值关闭运算符都是上述运算符的组合。关闭是膨胀后的蚀,而打开是腐蚀后的膨胀操作。如示例图像所示,gray_closing减少甚至删除了图像中比邻近区域更暗的部分,而gray_opening减少了较亮的区域。此外,使用合适的结构元素,可以在删除不需要的图像工件的同时保留形状。

(1)原始灰度值图像,(2)原点中有参考点的结构元素,(3)关闭输入图像的结果,(4)打开输入图像的结果。

20.1.4 进一步的操作

要仔细查看受灰度值打开或关闭影响的区域,可以执行gray_tophat或gray_bothat转换。所得到的图像显示原始图像与图像的开合分别的差值。还可以使用这些操作符来检测与结构元素形状匹配的结构。
通过可视化像素值的局部变化程度,gray_range_rect操作符使您有机会检测均匀表面上的精细结构。

(1)top hat,(2)bottom hat,(3)灰度范围。

通过应用gray_range_rect操作符,您可以执行一种减轻形式的灰度值打开或关闭操作。您可以通过调整参数ModePercent来控制转换。

双秩运算:(1)ModePercent = 0(等于开始),(2)ModePercent = 25, (3) ModePercent = 50(等于中位数),(4)ModePercent = 75, (5) ModePercent = 100(等于结束)。

20.1.5 术语表

在下面的列表中,描述了在形态学上下文中使用的最重要的术语。

non-linear operator, 非线性算子
不一定保留输入图像结构的算子
structuring element, 结构化元素
用于扫描输入图像的区域。

20.1.6 操作符列表

dual_rank
打开,中间和关闭圆形或矩形蒙版。
gen_disc_se
生成椭球结构元素的灰色形态。
gray_bothat
对图像执行灰度值底帽变换。
gray_closing
对图像执行灰度值关闭。
gray_closing_rect
用矩形蒙版关闭灰度值。

gray_closing_shape
使用选定的掩码执行灰度值关闭。
gray_dilation
对图像执行灰度值放大。
gray_dilation_rect
确定矩形内的最大灰度值。
gray_dilation_shape
确定所选掩码内的最大灰度值。
gray_erosion
对图像执行灰度值侵蚀。
gray_erosion_rect
确定矩形内的最小灰度值。
gray_erosion_shape
确定所选掩码内的最小灰度值。

gray_opening

在图像上执行灰度值打开。
gray_opening_rect
用矩形蒙版打开灰度值。
gray_opening_shape
用选定的蒙版进行灰度值打开。
gray_range_rect
确定矩形内的灰度值范围。
gray_tophat
对图像执行灰度值顶帽变换。

read_gray_se
加载灰色形态学的结构元素。

20.2 Region (...),区域

本章描述了区域形态学的运算符。

20.2.1 区域形态学概念

区域形态学提供了一组形态学运算符,允许修改或描述区域的形状。例如,形态学运算符可用于连接或断开相邻区域或平滑区域的边界。在下文中,我们将仔细研究形态学操作符。

20.2.2膨胀和侵蚀

为了膨胀蚀一个输入区域,一个结构元素被应用到输入区域。该结构元素逐行扫描图像。在膨胀期间,只要所述结构元件和所述输入区域具有至少一个共同像素,所述结构元件的参考点被添加到所述结果区域。这会导致放大的区域,如下图所示。腐蚀减少了输入区域的面积,因为只有当结构元件完全位于输入区域内时,参考点才被添加到结果区域。因此,腐蚀也可以用来寻找物体。

(1)带输入区域的图像,(2)原点有参考点的结构元素,(3)膨胀输入区域的结果,(4)腐蚀输入区域的结果。

这些操作符可用于膨胀腐蚀一个区域:

注意,如果结构元素是对称的,闵可夫斯基加法和膨胀是相同的。这同样适用于闵可夫斯基减法和腐蚀。腐蚀可以用来分离彼此附着的物体。下面将简要描述分离对象所需的步骤。
首先,必须对图像对象进行分割,例如使用算子threshold。接下来,使用操作符connection来获取多个区域,而不是单个区域。正如你在下图(3)中看到的那样,连接的结果并不令人满意,因为几个对象被合并了。

(1)球状物体图像,(2)分割区域,(3)连通分量。

这个问题可以通过蚀来解决。如上所述,腐蚀减少了输入区域的面积。因此,如果在操作符connection之前进行腐蚀,则可以按需要将这些区域分开。最后,对分离区域进行膨胀处理,近似恢复原始形状。

(1)腐蚀后的分段区域,(2)连接构件,(3)膨胀后的连接构件。

20.2.3 开启和闭合

两种操作符都是通过结合膨胀和腐蚀来产生最终区域的。打开是一种蚀,接着是膨胀。消除不需要的小结构是有用的。关闭是开的对立面,即膨胀之后是蚀。关闭操作符能够关闭小间隙,如下所示。

(1)带输入区域的图像,(2)带参考点的结构元素,(3)对输入区域施加打开的结果,(4)施加闭合的结果。

这些操作符可用于打开或关闭一个区域:

20.2.4 进一步的操作

除了上面提到的操作符之外,还可以使用top_hat来获取输入区域与打开结果之间的差值,或者使用bottom_hat来获取关闭结果与输入区域之间的差值。此外,还可以使用算子boundary计算区域的边界。

操作符hit_or_miss可以用来查找对象,同时考虑图像的前景和背景。为了从骨架上去除不需要的分支,pruning是一种合适的操作。

20.2.5 术语表

在下面的列表中,描述了在形态学上下文中使用的最重要的术语。

Input region, 输入区域
由形态算子修饰的区域。
structuring element, 结构化元素
区域,用于扫描输入区域。

20.2.6 操作符列表

bottom_hat
计算区域的底帽。
boundary
将一个区域缩小到它的边界。
closing
关闭一个区域。
closing_circle
用圆形结构元素封闭一个区域。
closing_rectangle1
用矩形结构元素关闭一个区域。

dilation1

膨胀一个区域。
dilation2
膨胀一个区域(使用参考点)。
dilation_circle
用圆形结构元素展开一个区域。
dilation_rectangle1
用矩形结构元素膨胀一个区域。
erosion1
腐蚀一个区域
erosion2
腐蚀一个区域(使用参考点)。

erosion_circle
腐蚀具有圆形结构元素的区域。
erosion_rectangle1
腐蚀具有矩形结构元素的区域。
hit_or_miss
针对区域的任意操作。
minkowski_add1
对区域执行minkowski加法。
minkowski_add2
膨胀一个区域(使用参考点)。

minkowski_sub1
腐蚀一个区域
minkowski_sub2
腐蚀一个区域(使用参考点)。
opening
打开一个区域。
opening_circle
打开一个带有圆形结构元素的区域。
opening_rectangle1
打开一个矩形结构元素的区域。

pruning
修剪一个区域的枝干。
top_hat
计算区域的顶帽

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值