使用不同的膨脹和腐蝕方法對圖像進行處理


膨脹是將與物體接觸的所有背景點合並到該物體中,使邊界向外部擴張的過程。通過膨脹,可以填充圖像中的小孔及在圖像邊緣處的小凹陷部分。結構元素B對圖像A進行膨脹,記作A ​ B

腐蝕和膨脹是對偶操作。腐蝕是一種消除邊界點,使邊界向內部收縮的過程。利用腐蝕操作,可以消除小且無意義的物體。集合A被結構元素B腐蝕,記作A\ThetaB

這里為了簡化起見,被膨脹和腐蝕圖像我們處理成二值圖像:

matlab 中

膨脹函數 IM2 = imdilate(IM,SE)   對圖像IM進行膨脹,采用的結構元素為SE,SE為函數strel()得到的結構元素

腐蝕函數 IM2 = imerode(IM,SE)  對圖像IM進行腐蝕,其他同上

以膨脹為例代碼如下:

close all;clear all;clc;
I = imread('ceshi1.jpg');
I = im2bw(I);
I = ~I;
se1 = strel('square',3);  %方形膨脹元素
se2 = strel('line',5,90);   %線性膨脹元素
%se3 = strel('ball',5,10);   %球形膨脹元素  不能用於二值圖像
se4 = strel('disk',11);     %磁盤膨脹元素
se5 = strel('rectangle',[20 30]);  %矩形膨脹元素
A = imdilate(I,se1);
B = imdilate(I,se2);
%C = imdilate(I,se3);
D = imdilate(I,se4);
E = imdilate(I,se5);
figure;
subplot(231);imshow(I);title('origin');
subplot(232);imshow(A);title('square');
subplot(233);imshow(B);title('line');
%subplot(234);imshow(C);title('ball');
subplot(235);imshow(D);title('disk');
subplot(236);imshow(E);title('rectangle');

strel結構元素說明:

 Examples
    --------
        se1 = strel('square',11)      % 11-by-11 square
        se2 = strel('line',10,45)     % line, length 10, angle 45 degrees
        se3 = strel('disk',15)        % disk, radius 15
        se4 = strel('ball',15,5)      % ball, radius 15, height 5

注意:這里球形結構元素不能用於膨脹操作,腐蝕操作類似,只需要修改imdilate函數為imerode函數

程序執行后輸出如下:

 


免責聲明!

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



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