形態學圖像處理


一、C語言簡介程序語句分類

1. 循環:

  • while(表達式) 語句 \\當while()內的表達式為真時,循環執行{}內的語句,直到while()內的表達式為假.跳出循環.
  •  do...while語句\\先執行do{}中的語句然后判斷while()中的表達式

  • for語句,for(表達式1;表達式2;表達式3) \\先執行表達式1,然后執行表達式2,如果表達式2的值為真.那么執行{}內的語句,執行完畢后在執行表達式

  • 用break語句提前終止循環
  • 用continue語句結束本次循環

2.選擇判斷

  • if ...else 語句
  • switch
  •  &&  邏輯與    兩個值都為真,則結果為真,否則為假

         ||   邏輯或    有一個或一個以上為真,則結果為真,二則都為假時,結果為假.

         !   邏輯非 

  • 優先級

二、形態學算法

grid on;                  %顯示網格線

axis on;                  %顯示坐標系

axis([50,250,50,200]);

subplot(1,3,4)%1表示1行,3表示3列,4表示第四個圖

1.邊界提取

I=imread('1.jpg');          %載入圖像

subplot(1,3,1),imshow(I);

title('原始圖像');

I1=im2bw(I);

subplot(1,3,2),imshow(I1);

title('二值化圖像');

I2=bwperim(I1);                 %獲取區域的周長

subplot(1,3,3),imshow(I2);

title('邊界周長的二值圖像');  

結果顯示

膨脹

I=imread('1.jpg');          %載入圖像

subplot(1,3,1),imshow(I);

title('原始圖像');

I1=rgb2gray(I);

subplot(1,3,2);

imshow(I1);

title('灰度圖像')     

se=strel('disk',1);          %生成圓形結構元素

I2=imdilate(I1,se);         %用生成的結構元素對圖像進行膨脹

subplot(1,3,3);

imshow(I2);

title(' 膨脹后圖像');

結果顯示

腐蝕

I=imread('1.jpg');  %載入圖像

subplot(2,2,1),imshow(I);

title('原始圖像');

I1=rgb2gray(I);

subplot(1,2,1);

imshow(I1);

title('灰度圖像')     

se=strel('disk',1);       %生成圓形結構元素

I2=imerode(I1,se);        %用生成的結構元素對圖像進行腐蝕

subplot(1,2,2);

imshow(I2);

title('腐蝕后圖像');

結果圖

開操作和閉操作

I=imread('1.jpg');          %載入圖像

subplot(2,2,1),imshow(I);

title('原始圖像');

I1=rgb2gray(I);

subplot(2,2,2),imshow(I1);

title('灰度圖像');                

se=strel('disk',1);     %采用半徑為1的圓作為結構元素

I2=imopen(I1,se);         %開啟操作

I3=imclose(I1,se);        %閉合操作

subplot(2,2,3),imshow(I2);

title('開啟運算后圖像');

subplot(2,2,4),imshow(I3);

title('閉合運算后圖像');

結果顯示

開啟閉合組合操作

I=imread('1.jpg');          %載入圖像

subplot(2,3,1),imshow(I);

title('原始圖像');

I1=rgb2gray(I);

subplot(2,3,2),imshow(I1);

title('灰度圖像');          

se=strel('disk',1);    

I2=imopen(I1,se);         %開啟操作

I3=imclose(I1,se);        %閉合操作

subplot(2,3,3),imshow(I2);

title('開啟運算后圖像');

subplot(2,3,4),imshow(I3);

title('閉合運算后圖像');

se=strel('disk',1);

I4=imopen(I1,se);

I5=imclose(I4,se);

subplot(2,3,5),imshow(I5);        %開—閉運算圖像

title('開—閉運算圖像');

I6=imclose(I1,se);

I7=imopen(I6,se);

subplot(2,3,6),imshow(I7);        %閉—開運算圖像

title('閉—開運算圖像');

2.中值濾波器

I=imread('1.jmp');

I=rgb2gray(I);

J=imnoise(I,'salt&pepper',0.02);

subplot(231),imshow(I);title('原圖像');

subplot(232),imshow(J);title('添加椒鹽噪聲圖像');

k1=medfilt2(J);            %進行3*3模板中值濾波

k2=medfilt2(J,[5,5]);      %進行5*5模板中值濾波

k3=medfilt2(J,[7,7]);      %進行7*7模板中值濾波

k4=medfilt2(J,[9,9]);      %進行9*9模板中值濾波

subplot(233),imshow(k1);title('3*3模板中值濾波');

subplot(234),imshow(k2);title('5*5模板中值濾波 ');

subplot(235),imshow(k3);title('7*7模 板中值濾波');

subplot(236),imshow(k4);title('9*9 模板中值濾波');

區域填充

連通分量的提取

凸殼

細化粗化 (這幾個繼續找程序)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM