Halcon灰度图像的形态学运算

Halcon灰度图像的形态学运算

本文介绍的算子的输入类型是灰度的Image图像。

1. 灰度图像与区域的区别

基于区域的形态学运算与基于灰度图像的形态学运算的根本区别在于,二者输入的对象不同。前者输入的是一些区域,并且这些区域是经过闽值处理的二值图像区域;而后者的输入则是灰度图像。

当输入对象是一些二值区域时,这些区域就成了算子的主要操作对象。区域的灰度是二值的,并不会发生变化。形态学运算改变的是这些区域的形状,如通过腐蚀使区域面积变小,或者通过膨胀使区域面积变大等。

而当输入对象是灰度图像时,形态学运算改变的则是像素的灰度,表现为灰度图像上的亮区域或暗区域的变化。

腐蚀运算是将图像中的像素点赋值为其局部邻域中灰度的最小值,因此图像整体灰度值减少,图像中暗的区域变得更暗,较亮的小区域被抑制。

膨胀运算是将图像中的像素点赋值为其局部邻域中灰度的最大值,经过膨胀处理后,图像整体

灰度值增大,图像中亮的区域扩大,较暗的小区域消失。注意,灰度图像的形态学运算也可以理解为针对暗背景、亮目标的图像进行的运算。

2. 灰度图像的形态学运算效果及常用算子

本部分以一个例子来说明对灰度图像进行腐蚀、膨胀、开运算及闭运算操作的效果。如图所示,通过腐蚀运算,将 mask 结构元素中的最小灰度值赋给原图中的像素,结果是图像变暗了,局部的亮的细节,如河流部分被抑制了。膨胀运算却正相反,是将 mask结构元素中的最大灰度值赋给原图中的像素,因此图像整体变得更亮,局部较亮的细节部分被"膨胀"了,而暗的细节部分则被抑制了。图(a)为输入的原始灰度图像,图(b)为腐蚀处理后的图像,图(c)为膨胀处理后的图像。

灰度图像的开运算与闭运算也与此类似。开运算是先腐蚀后膨胀,闭运算是先膨胀后腐蚀。通过对灰度图像图(a)进行开运算处理,图像中较亮的小细节消失,如图 (b)所示;反之,通过对灰度图像进行闭运算处理,图像中较暗的局部小区域消失,如图(c)所示。

上述过程的代码如下:

bash 复制代码
*读取输入图像
read_image (Imagecolor, 'data/village')
*将原始图像转换为灰度图像,作为形态学处理的输入
rgbl_to_gray (ImageColor, Image)
*进行灰度图像腐蚀操作
gray_erosion_shape (Image, ImageMin, 11, 11, 'octagon')
*进行灰度图像膨胀操作
gray_dilation_shape (Image, ImageMax, 11, 11, 'octagon')
*进行灰度图像开运算操作
gray_opening_shape (Image, ImageOpening, 7, 7, 'octagon')
*进行灰度图像闭运算操作
gray_closing _shape (Image, ImageClosing, 7, 7, 'octagon')

由两组图可见灰度图像的形态学操作效果。

(1)经过灰度图像腐蚀操作,图像变暗了,这是因为图像中较亮的局部区域被"收缩"了,较暗的局部区域被"扩大"了,因而图像变暗了。

(2)经过灰度图像膨胀操作,较亮的局部区域被"扩大"了,而较暗的局部区域被"收缩"了,图像整体变得更亮。

(3)对灰度图像进行开运算操作之后,图像中较亮的小细节消失,如田野中的小路被暗区域覆

盖了。

(4)对灰度图像进行闭运算操作之后,可以看到较暗的一些点消失了,类似于灰度图像中的

"小孔隙"被填补了,同时较亮的区域的边缘更清晰了。

下面介绍常用的灰度形态学操作中的一些算子,实际检测中可根据需要选用。

1.对灰度图像的腐蚀运算,常用的算子如下:

(1)gray_erosion_rect:使用矩形的mask进行腐蚀操作。

(2)gray_erosion_shape :使用选定的形状mask进行腐蚀操作。

2.对灰度图像的膨胀运算,常用的算子如下:

(1)gray_dilation_rect:使用矩形的mask进行膨胀操作。

(2)gray_dilation_shape:使用选定的形状mask进行膨胀操作。

3.对灰度图像的开运算,常用的算子如下:

(1)gray_opening:对图像进行灰度值的开运算。

(2)gray_opening_rect:使用矩形的mask对图像进行灰度值的开运算。

(3)gray_opening_shape :使用选定的形状mask对图像进行灰度值的开运算。

4.对灰度图像的闭运算,常用算子如下:

(1)gray_closing:对图像进行灰度值的闭运算。

(2)gray_closing_rect:使用矩形的mask对图像进行灰度值的闭运算。

(3)gray_closing shape:使用选定的形状mask对图像进行灰度值的闭运算。

相关推荐
charley.layabox4 小时前
8月1日ChinaJoy酒会 | 游戏出海高端私享局 | 平台 × 发行 × 投资 × 研发精英畅饮畅聊
人工智能·游戏
DFRobot智位机器人5 小时前
AIOT开发选型:行空板 K10 与 M10 适用场景与选型深度解析
人工智能
想成为风筝7 小时前
从零开始学习深度学习—水果分类之PyQt5App
人工智能·深度学习·计算机视觉·pyqt
F_D_Z7 小时前
MMaDA:多模态大型扩散语言模型
人工智能·语言模型·自然语言处理
大知闲闲哟7 小时前
深度学习G2周:人脸图像生成(DCGAN)
人工智能·深度学习
飞哥数智坊8 小时前
Coze实战第15讲:钱都去哪儿了?Coze+飞书搭建自动记账系统
人工智能·coze
wenzhangli78 小时前
低代码引擎核心技术:OneCode常用动作事件速查手册及注解驱动开发详解
人工智能·低代码·云原生
千宇宙航8 小时前
闲庭信步使用图像验证平台加速FPGA的开发:第十课——图像gamma矫正的FPGA实现
图像处理·计算机视觉·缓存·fpga开发
潘达斯奈基~9 小时前
大模型的Temperature、Top-P、Top-K、Greedy Search、Beem Search
人工智能·aigc
倔强青铜三9 小时前
苦练Python第18天:Python异常处理锦囊
人工智能·python·面试