灰度图像形态学膨胀与腐蚀
与二值图像有些差异。
示例:
(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