与二值图像有些差异。
示例:
(1)灰度膨胀
>> t=rand(7,8);
>> t=ceil(t.*256)%t为灰度图像
t =
209 125 191 9 168 246 158 14
232 205 101 113 42 141 122 136
33 37 168 98 31 36 91 200
234 108 44 196 128 39 213 240
162 235 181 204 246 66 150 34
25 203 9 48 88 216 141 146
72 246 71 126 150 66 235 121
>> figure,imshow(t,[],'InitialMagnification','fit');
结构元素:
>> se=strel('square',3)
se =
Flat STREL object containing 9 neighbors.
Neighborhood:
1 1 1
1 1 1
1 1 1
灰度膨胀操作:
>> g=imdilate(t,se)
g =
232 232 205 191 246 246 246 158
232 232 205 191 246 246 246 200
234 234 205 196 196 213 240 240
235 235 235 246 246 246 240 240
235 235 235 246 246 246 240 240
246 246 246 246 246 246 235 235
246 246 246 150 216 235 235 235
>>figure,imshow(g,[],'InitialMagnification','fit');
分析:
结论:平坦的灰度膨胀是一个局部最大值算子。
(2)灰度腐蚀
同样采用上述示例图像t:
>> ge=imerode(t,se)
ge =
125 101 9 9 9 42 14 14
33 33 9 9 9 31 14 14
33 33 37 31 31 31 36 91
33 33 37 31 31 31 34 34
25 9 9 9 39 39 34 34
25 9 9 9 48 66 34 34
25 9 9 9 48 66 66 121
>> figure,imshow(ge,[],'InitialMagnification','fit');
分析:
结论:平坦的灰度腐蚀是一个局部最小值算子。
(注:①结构元素不一定规则,原点也不一定在中心②在边界处时,不存在填充的说法③膨胀与腐蚀的更多特性参书上的笔记)
(3)形态学梯度初步
“从膨胀后的图像减去腐蚀后的图像可产生一个形态学梯度,它是检测图像中局部灰度变化的一种度量。”
>> gr=imsubtract(g,ge)
gr =
107 131 196 182 237 204 232 144
199 199 196 182 237 215 232 186
201 201 168 165 165 182 204 149
202 202 198 215 215 215 206 206
210 226 226 237 207 207 206 206
221 237 237 237 198 180 201 201
221 237 237 141 168 169 169 114
2.Morphological 形态学
(1)二维点对集操作,对于不同的结构用不同的算子,进行掩膜运算
(2)膨胀操作(Dilation) 对边界进行扩充
(3)腐蚀操作(Erosion)
(4)闭操作(closing)先膨胀后腐蚀,添洞补沟,合并小的物体
(5)开操作(opening)先腐蚀后膨胀,去毛刺,去掉小的物体
二、灰度图像的形态学处理
膨胀:把峰值加宽,凹槽变细,取最大的B
opening: max(min(A))
closing: min(max(A))
顶帽tophat :得到峰值 ( 原图 - 形态学开操作后的图)
底帽bottomhat:得到凹槽值,(形态学闭操作后的图 - 原图)
------------------------------------------------------------------------------------------------------------------
对灰度图进行:
1.膨胀操作结果
(1)结构元素均为正值,输出图像趋向比输入图像更亮
(2)暗的细节全部被消除了还是减少了,取决与膨胀所用的结构元素的值和形状
2.腐蚀操作
(1)结构元素为正值,输出图像会比输入图像暗
(2)输入图像中亮的细节的面积如果比结构元素的面积小,则亮的效果将被消弱
3.开操作:除去较小的明亮细节,保持整体的灰度级和较大的明亮区域不变
4.闭操作:除去较小的暗细节,而相对地保持明亮部分不受影响