灰度值

算子列表 ↓

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

灰度值形态学概念

灰度值形态学提供了一组算子,能够根据像素邻域特性对图像中的灰度值进行非线性处理。例如,形态学灰度值算子可用于平滑或强化图像中的结构特征。与 形态学 / 区域 中的二值运算不同,形态学灰度值算子处理的输入图像包含具有超过 1 位范围的像素。因此灰度值形态学可视为区域形态学的广义形式。下文将深入探讨形态学灰度值算子的具体应用。

灰度图像的膨胀与腐蚀

执行膨胀或腐蚀操作时,图像中每个像素的灰度值取决于其邻域。影响每个像素的邻域范围与形状由所选结构元素定义,当前像素作为参考点。执行膨胀操作时,输入图像的每个像素将被赋予其邻域的最大灰度值;执行腐蚀操作时则赋予最小灰度值。因此,输入图像的亮部区域通过灰度值膨胀得到增强,而灰度值腐蚀则突显暗部区域。

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

这些算子可用于对图像进行膨胀或腐蚀:

形态学算子 结构元素
gray_dilationgray_dilationGrayDilationGrayDilationGrayDilationgray_dilation gray_erosiongray_erosionGrayErosionGrayErosionGrayErosiongray_erosion 任意
gray_dilation_rectgray_dilation_rectGrayDilationRectGrayDilationRectGrayDilationRectgray_dilation_rect gray_erosion_rectgray_erosion_rectGrayErosionRectGrayErosionRectGrayErosionRectgray_erosion_rect 矩形
gray_dilation_shapegray_dilation_shapeGrayDilationShapeGrayDilationShapeGrayDilationShapegray_dilation_shape gray_erosion_shapegray_erosion_shapeGrayErosionShapeGrayErosionShapeGrayErosionShapegray_erosion_shape 菱形/矩形/八边形

形态学灰度运算通常是图像预处理环节的重要组成部分,唯有如此才能有效提取信息。以下示例展示了需要进行灰度值腐蚀以读取数据码符号的情况。为使图像符合解码所用的数据模型,需通过扩大局部极小值的方形区域来缩小图像中码元间的间隙。因此采用灰度值腐蚀处理,使用尺寸适宜的矩形作为结构元素。矩形尺寸取决于通过 create_data_code_2d_modelcreate_data_code_2d_modelCreateDataCode2dModelCreateDataCode2dModelCreateDataCode2dModelcreate_data_code_2d_model 创建的数据模型,该模型中已确定了可接受的模块间隙尺寸。

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

开与闭

灰度值开运算与灰度值闭运算分别由上述运算组合而成。闭运算先执行膨胀再执行腐蚀,而开运算则先执行腐蚀再执行膨胀。如示例图像所示,gray_closinggray_closingGrayClosingGrayClosingGrayClosinggray_closing 会削弱甚至消除比邻域更暗的图像区域,而 gray_openinggray_openingGrayOpeningGrayOpeningGrayOpeninggray_opening 则会削弱较亮区域。此外,通过选用合适的结构元素,可在消除图像伪影的同时保留原始形状特征。

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

其他算子

要更详细地观察受灰度值开运算或闭运算影响的区域,可执行 gray_tophatgray_tophatGrayTophatGrayTophatGrayTophatgray_tophatgray_bothatgray_bothatGrayBothatGrayBothatGrayBothatgray_bothat 变换。生成的图像分别显示原始图像与经过开运算或闭运算处理后的图像差异。您还可利用这些算子检测与结构元素形状相匹配的结构特征。

gray_range_rectgray_range_rectGrayRangeRectGrayRangeRectGrayRangeRectgray_range_rect 算子通过可视化像素值的局部变化范围,使您能够检测均匀表面上的精细结构。

( 1) ( 2) ( 3)
(1)顶帽,(2)底帽,(3)灰度值范围。

通过应用 gray_range_rectgray_range_rectGrayRangeRectGrayRangeRectGrayRangeRectgray_range_rect 算子,可执行灰度值开运算或闭运算的缓和形式。通过调整 ModePercentModePercentModePercentModePercentmodePercentmode_percent 参数可控制该转换效果。

( 1) ( 2) ( 3) ( 4) ( 5)
双秩操作: (1) ModePercentModePercentModePercentModePercentmodePercentmode_percent = 0(等同开运算),(2) ModePercentModePercentModePercentModePercentmodePercentmode_percent = 25,(3) ModePercentModePercentModePercentModePercentmodePercentmode_percent = 50(等于中值),(4) ModePercentModePercentModePercentModePercentmodePercentmode_percent = 75,(5) ModePercentModePercentModePercentModePercentmodePercentmode_percent = 100(等于闭运算)。

术语表

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

非线性算子

不一定保持输入图像结构的算子。

结构元素

用于扫描输入图像的区域。


算子列表

dual_rankDualRankdual_rankDualRankdual_rank双秩
使用圆形或矩形掩模开、中值和闭。
gen_disc_seGenDiscSegen_disc_seGenDiscSegen_disc_se生成椭圆结构元素
为灰度形态学生成椭圆结构元素。
gray_bothatGrayBothatgray_bothatGrayBothatgray_bothat灰度底帽
对图像执行灰度值底帽变换。
gray_closingGrayClosinggray_closingGrayClosinggray_closing灰度闭
对图像执行灰度值闭。
gray_closing_rectGrayClosingRectgray_closing_rectGrayClosingRectgray_closing_rect灰度闭矩形
使用矩形掩模执行灰度值闭。
gray_closing_shapeGrayClosingShapegray_closing_shapeGrayClosingShapegray_closing_shape灰度闭形状
使用选定的掩模执行灰度值闭。
gray_dilationGrayDilationgray_dilationGrayDilationgray_dilation灰度膨胀
对图像执行灰度值膨胀。
gray_dilation_rectGrayDilationRectgray_dilation_rectGrayDilationRectgray_dilation_rect灰度膨胀矩形
确定矩形内的最大灰度值。
gray_dilation_shapeGrayDilationShapegray_dilation_shapeGrayDilationShapegray_dilation_shape灰度膨胀形状
确定选定掩模内的最大灰度值。
gray_erosionGrayErosiongray_erosionGrayErosiongray_erosion灰度腐蚀
对图像执行灰度值腐蚀。
gray_erosion_rectGrayErosionRectgray_erosion_rectGrayErosionRectgray_erosion_rect灰度腐蚀矩形
确定矩形内的最小灰度值。
gray_erosion_shapeGrayErosionShapegray_erosion_shapeGrayErosionShapegray_erosion_shape灰度腐蚀形状
确定选定掩模内的最小灰度值。
gray_openingGrayOpeninggray_openingGrayOpeninggray_opening灰度开
对图像执行灰度值开。
gray_opening_rectGrayOpeningRectgray_opening_rectGrayOpeningRectgray_opening_rect灰度开矩形
使用矩形掩模执行灰度值开。
gray_opening_shapeGrayOpeningShapegray_opening_shapeGrayOpeningShapegray_opening_shape灰度开形状
使用选定的掩模执行灰度值开。
gray_range_rectGrayRangeRectgray_range_rectGrayRangeRectgray_range_rect灰度范围矩形
确定矩形内的灰度值范围。
gray_tophatGrayTophatgray_tophatGrayTophatgray_tophat灰度顶帽
对图像执行灰度值顶帽变换。
read_gray_seReadGraySeread_gray_seReadGraySeread_gray_se读取灰度结构元素
加载灰度形态学的结构元素。