灰度形態學圖像處理
灰度圖像的形態學梯度定義爲膨脹運算與腐蝕運算的結果之間的差值。
灰值腐蝕
灰值膨脹
開運算與閉運算
實驗步驟
(1)膨脹和腐蝕
- 用strel(’square’,3)函數構建平坦的3X3結構元素
- 用strel(’disk’,2)創建半徑爲2的圓盤結構元素
- 用函數imdilate對函數進行膨脹操作
- 用函數imrode對函數進行腐蝕操作
(2)開運算與閉運算
- 用strel(’disk’,5)創建半徑爲5的圓盤結構元素
- 用函數imopen對函數進行開運算操作
- 用函數imclose對函數進行閉運算操作
- 用循環結構體對圖像進行開閉交替處理
實驗結果
( 1 )膨脹和腐蝕
代碼如下:
i= imread('E:\文本文件\作業\數字圖像處理\圖片\fishingboat.bmp');
s1=strel('square',3); %構造了一個平坦的3x3的結構元素
s2=strel('disk',2); % 創建圓盤半徑2
gd=imdilate(i,s1); %對原圖像進行膨脹操作
ge=imerode(i,s1); %對原圖像進行腐蝕操作
gd1=imdilate(i,s2); %對原圖像進行膨脹操作
ge1=imerode(i,s2); %對原圖像進行腐蝕操作
subplot(231),imshow(i),xlabel('原始圖像')
subplot(232),imshow(ge),xlabel('侵蝕後圖像1')
subplot(233),imshow(gd),xlabel('膨脹後圖像1')
subplot(234),imshow(ge1),xlabel('侵蝕後圖像2')
subplot(235),imshow(gd1),xlabel('膨脹後圖像2')
運行結果如下圖1:
圖 1
(a)原 圖
(b)侵蝕後圖像1
(c)脹膨後圖像1
(d)侵蝕後圖像2
(e)膨脹後圖像2
( 2 )開運算與閉運算
代碼如下:
i = imread('E:\文本文件\作業\數字圖像處理與分析\圖片\coin2.bmp');
subplot(3,2,1),imshow(i); xlabel('圖像原圖');
s1=strel('disk',5); % % 創建圓盤半徑5
bw1=imopen(i,s1); %經過開運算
subplot(3,2,2),imshow(i); xlabel('使用半徑5的disk開運算後的圖像');
bw2=imclose(bw1,s1);
subplot(3,2,3),imshow(bw2); xlabel('先開後閉的圖像');
bw3=imclose(i,s1);
subplot(3,2,4),imshow(bw3); xlabel('原始圖像的閉操作');
bw4=imopen(bw3,s1);
subplot(3,2,5),imshow(bw4); xlabel('先閉後開的圖像');
fasf=i;
for f=2:5
s1=strel('disk',f);
fasf=imclose(imopen(fasf,s1),s1);
end
subplot(3,2,6),imshow(fasf);
xlabel('使用開閉交替濾波後圖像');
運行結果如下圖2:
圖 2
(a)原圖
(b)半徑爲5的disk開運算圖像
(c)先開後閉的圖像
(d)原圖的閉操作
(e)先閉後開的圖像
(f)使用開閉交替濾波後圖像
比較處理後的圖像結果可知:
(1)膨脹得到的圖像比原圖像更明亮,並且減弱或消除小的,暗的細節部分,比原圖像模糊;腐蝕的到的圖像更暗,並且尺寸小,明亮的部分被削弱。
(2)開運算使圖像的輪廓變得光滑,閉運算同樣使得輪廓變得光滑,但是與開運算相反,它通常能夠彌合狹窄的間斷,填充小的孔洞。