大神帶你玩轉matlab影像處理(三)

  • 2020 年 3 月 10 日
  • 筆記

第四章:影像形態學變換

4.1 影像腐蝕

基礎理論模型

下圖介紹以3*3的結構元素腐蝕效果圖

原始影像

正方形結構元

腐蝕過程

腐蝕結果

指定的結構元語法規則:

SE =strel('diamond',r)創建菱形形狀的結構元素,其中r指定從結構元素原點到菱形中心點的距離。

SE = strel('disk',r,n) 創建一個圓形結構元素,其中r 指定半徑並n指定用於近似圓盤形狀的線形結構元素的數量。當結構化元素使用近似值時,使用圓盤近似值的形態運算的運行速度要快得多。

SE = strel('line',len,deg) 創建一個線性結構元素,該元素相對於鄰域中心對稱

SE =strel('octagon',r)創建一個八邊形結構元素,該元素r指定從結構元素原點到八邊形邊的距離(沿水平軸和垂直軸測量)。r必須為3的非負倍數。

SE =strel('rectangle',[m n]) 創建一個大小為的矩形結構元素[m n]。

SE =strel('square',w)創建一個正方形結構元素,其寬度為w 像素。

SE = strel('cube',w)創建一個3D立方體結構元素,其寬度為w 像素。

SE =strel('cuboid',[m n p]) 創建一個大小為的3-D長方體結構元素[m n p]。

SE =strel('arbitrary',nhood,h)任意自定義結構元素

SE =strel('sphere',r)創建一個半徑為r 像素的3-D球體結構元素。

imerode語法規則:

B=imerode(A,SE)

A:原影像,B:結果圖,SE:結構元

clc;clear;s=what;p=s.path;I=imread([p,'影像素材','lenaRGB.bmp']);gr=graythresh(I);%確定二值化閾值B=im2bw(I,gr);%對影像二值化%% 正方形結構元素腐蝕se1=strel('square',2);se2=strel('square',4);se3=strel('square',8);se4=strel('square',16);J1=imerode(B,se1);J2=imerode(B,se2);J3=imerode(B,se3);J4=imerode(B,se4);subplot(2,3,1);imshow(I);title('原影像','FontSize',20);subplot(2,3,2);imshow(B);title('二值化影像','FontSize',20);subplot(2,3,3);imshow(J1);title('$2times 2$','interpreter','latex','FontSize',20);%2*2正方形結構元素腐蝕圖subplot(2,3,4);imshow(J2);title('$4times 4$','interpreter','latex','FontSize',20);%4*4正方形結構元素腐蝕圖subplot(2,3,5);imshow(J3);title('$8times 8$','interpreter','latex','FontSize',20);%8*8正方形結構元素腐蝕圖subplot(2,3,6);imshow(J4);title('$16times 16$','interpreter','latex','FontSize',20);%16*16正方形結構元素腐蝕圖

運行結果

4.2 影像膨脹

下圖介紹以3*3的結構元素膨脹效果圖

原始原圖

正方形結構元

膨脹過程

結果圖

imdilate語法規則:

B=imdilate(A,SE)

A:原影像,B:結果圖,SE:結構元

clc;clear;s=what;p=s.path;I=imread([p,'影像素材','lenaRGB.bmp']);gr=graythresh(I);%確定二值化閾值B=im2bw(I,gr);%對影像二值化%% 正方形結構元素膨脹se1=strel('square',2);se2=strel('square',4);se3=strel('square',8);se4=strel('square',16);J1=imdilate(B,se1);J2=imdilate(B,se2);J3=imdilate(B,se3);J4=imdilate(B,se4);subplot(2,3,1);imshow(I);title('原影像','FontSize',20);subplot(2,3,2);imshow(B);title('二值化影像','FontSize',20);subplot(2,3,3);imshow(J1);title('$2times 2$','interpreter','latex','FontSize',20);%2*2正方形結構元素膨脹圖subplot(2,3,4);imshow(J2);title('$4times 4$','interpreter','latex','FontSize',20);%4*4正方形結構元素膨脹圖subplot(2,3,5);imshow(J3);title('$8times 8$','interpreter','latex','FontSize',20);%8*8正方形結構元素膨脹圖subplot(2,3,6);imshow(J4);title('$16times 16$','interpreter','latex','FontSize',20);%16*16正方形結構元素膨脹圖

運行結果

4.3 開運算

下圖介紹以3*3的結構元素開運算效果圖

原始原圖

正方形結構元

先腐蝕得出結果圖

再膨脹得出結果圖

imopen語法規則:

B=imopen(A,SE)

A:原影像,B:結果圖,SE:結構元

clc;clear;s=what;p=s.path;I=imread([p,'影像素材','lenaRGB.bmp']);gr=graythresh(I);%確定二值化閾值B=im2bw(I,gr);%對影像二值化%% 正方形結構元se1=strel('square',2);se2=strel('square',4);se3=strel('square',8);se4=strel('square',16);J1=imopen(B,se1);J2=imopen(B,se2);J3=imopen(B,se3);J4=imopen(B,se4);subplot(2,3,1);imshow(I);title('原影像','FontSize',20);subplot(2,3,2);imshow(B);title('二值化影像','FontSize',20);subplot(2,3,3);imshow(J1);title('$2times 2$','interpreter','latex','FontSize',20);%2*2正方形結構元素開運算圖subplot(2,3,4);imshow(J2);title('$4times 4$','interpreter','latex','FontSize',20);%4*4正方形結構元素開運算圖subplot(2,3,5);imshow(J3);title('$8times 8$','interpreter','latex','FontSize',20);%8*8正方形結構元素開運算圖subplot(2,3,6);imshow(J4);title('$16times 16$','interpreter','latex','FontSize',20);%16*16正方形結構元素開運算圖

運行結果

4.4 閉運算

下圖介紹以3*3的結構元素閉運算效果圖

原影像

正方形結構元

先膨脹得出結果圖

再腐蝕得出結果圖

imclose語法規則:

B=imclose(A,SE)

A:原影像,B:結果圖,SE:結構元

clc;clear;s=what;p=s.path;I=imread([p,'影像素材','lenaRGB.bmp']);gr=graythresh(I);%確定二值化閾值B=im2bw(I,gr);%對影像二值化%% 正方形結構元se1=strel('square',2);se2=strel('square',4);se3=strel('square',8);se4=strel('square',16);J1=imclose(B,se1);J2=imclose(B,se2);J3=imclose(B,se3);J4=imclose(B,se4);subplot(2,3,1);imshow(I);title('原影像','FontSize',20);subplot(2,3,2);imshow(B);title('二值化影像','FontSize',20);subplot(2,3,3);imshow(J1);title('$2times2$','interpreter','latex','FontSize',20);%2*2正方形結構元素閉運算圖subplot(2,3,4);imshow(J2);title('$4times 4$','interpreter','latex','FontSize',20);%4*4正方形結構元素閉運算圖subplot(2,3,5);imshow(J3);title('$8times 8$','interpreter','latex','FontSize',20);%8*8正方形結構元素閉運算圖subplot(2,3,6);imshow(J4);title('$16times 16$','interpreter','latex','FontSize',20);%16*16正方形結構元素閉運算圖

運行結果

參考資料:

https://ww2.mathworks.cn/help/images/ref/strel.html?s_tid=srchtitle

圖片來源:https://en.wikipedia.org/wiki/Lena_Forsén