灰度形态学

灰度值形态学

灰度值形态学概念

灰度值形态学提供了一组非线性操作符,可根据像素邻域对图像中的灰度值进行处理。例如,灰度形态学操作符可用于平滑或增强图像中的结构特征。与《形态学/区域》中的二值操作不同,灰度形态学操作符处理的输入图像包含多位深度的像素。因此,灰度值形态学可视为区域形态学的扩展。以下段落将详细解析灰度值形态学操作符。


灰度图像的膨胀与腐蚀

执行膨胀(dilation)或腐蚀(erosion)时,每个像素的灰度值由其邻域决定。邻域的范围和形状由选定的结构元素(structuring element)定义,当前像素作为参考点。

  • 膨胀:将输入图像中每个像素的灰度值替换为其邻域内的最大值。

  • 腐蚀:将每个像素的灰度值替换为其邻域内的最小值。

因此,灰度值膨胀会扩大输入图像中的亮区,而灰度值腐蚀则会强化暗区。

示例图

image-膨胀与腐蚀

(1) 原始灰度图像 (2) 以原点为参考点的结构元素 (3) 腐蚀后的结果 (4) 膨胀后的结果

以下算子可用于对图像进行膨胀或腐蚀操作:

形态学算子膨胀/腐蚀函数结构元素
任意结构元素GrayDilation/GrayErosion任意形状
矩形结构元素GrayDilationRect/GrayErosionRect矩形
菱形/矩形/八边形结构元素GrayDilationShape/GrayErosionShape菱形/矩形/八边形

形态学灰度操作通常是图像预处理的一部分,以便正确提取信息。以下示例展示了需要通过灰度腐蚀来读取数据代码符号的场景: 为了适配用于解码的数据模型,图像中代码元素之间的间隙需要通过扩大局部极小值(方形区域)来缩小。因此,需使用大小合适的矩形作为结构元素执行灰度腐蚀操作。矩形的尺寸取决于通过CreateDataCode2dModel创建的数据模型,该模型会确定可接受的模块间隙大小。

​应用案例​​:

image-二维码操作

(1) 编码物体图像 (2) 方形结构元素腐蚀后的结果 (3) 应用数据模型解码 (示例程序:2d_data_codes_minimize_module_gaps.hdev


开运算与闭运算

灰度值开运算(opening)和闭运算(closing)是前述操作符的组合:

  • 闭运算:先膨胀后腐蚀,可减少或移除比邻域暗的区域。

  • 开运算:先腐蚀后膨胀,可减少比邻域亮的区域。 通过选择合适结构元素,可在去除噪声的同时保留形状特征。

示例图

image-开运算闭运算

(1) 原始灰度图像 (2) 以原点为参考点的结构元素 (3) 闭运算结果 (4) 开运算结果


扩展操作符

  • 顶帽变换(gray_tophat)底帽变换(gray_bothat):通过计算原始图像与开/闭运算结果的差异,检测结构元素的匹配特征。

  • 灰度范围矩形(gray_range_rect):通过局部灰度值差异检测均匀表面的细微结构。

示例图

image-顶帽与底帽

(1) 顶帽变换 (2) 底帽变换 (3) 灰度值范围

参数控制: 使用gray_range_rect时,通过ModePercent调整操作强度:

image-灰度值范围

  • ModePercent=0:等效开运算

  • ModePercent=50:等效中值滤波

  • ModePercent=100:等效闭运算


术语表

  • 非线性操作符:不必然保留输入图像结构的操作符。

  • 结构元素:用于扫描输入图像的区域模板。


操作符列表(部分)

操作符功能描述
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加载灰度形态学的结构元素

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值