从实例来演示整个过程,易于理解,这是一个很好的详细的例子。
http://hi.baidu.com/lwb198609_love/blog/item/6b3b1f395f8228f315cecb97
(1)灰度膨胀
>>t=rand(7,8);
>> t=ceil(t.*256)%t为灰度图像
t =
>>figure,imshow(t,[],'InitialMagnification','fit');
结构元素:
>> se=strel('square',3)
se =
Flat STREL object containing 9 neighbors.
Neighborhood:
灰度膨胀操作:
>> g=imdilate(t,se)
g =
>>figure,imshow(g,[]);
从这个数据中可以看出:
1、胀可以使一个孤立的高亮噪音扩大化。
2、可以使用物体的一些低亮度的关键细节丢失。
:
结论:平坦的灰度膨胀是一个局部最大值算子。
(2)灰度腐蚀
同样采用上述示例图像t:
>> ge=imerode(t,se)
ge =
>> figure,imshow(ge,[]);
分析:
从这个数据中可以看出:
1、胀可以使一个孤立的低亮噪音扩大化。
2、可以使用物体的一些高亮度的关键细节丢失。
结论:平坦的灰度腐蚀是一个局部最小值算子。
(注:①结构元素不一定规则,原点也不一定在中心②在边界处时,不存在填充的说法③膨胀与腐蚀的更多特性参书上的笔记)
(3)形态学梯度初步
“从膨胀后的图像减去腐蚀后的图像可产生一个形态学梯度,它是检测图像中局部灰度变化的一种度量。”
>> gr=imsubtract(g,ge)
gr =
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.闭操作:除去较小的暗细节,而相对地保持明亮部分不受影响