一 、簡介
數學形态學誕生于1964年,膨脹是在圖像中目标結界周圍增添圖像,結構元素。
腐蝕:移除圖像中目标邊界的像素,結構元素B對集合A的腐蝕。
開運算與閉運算
matlab code:
clc;
clear all;
close all;
%灰階膨脹、腐蝕、開操作、閉操作測試圖像
I=[
0 0 0 1 0 0 0;
0 0 1 1 1 0 0;
1 0 1 1 1 0 0;
0 0 0 0 0 0 0;
];
%============================灰階腐蝕+膨脹圖像=============================
%半徑為2的平頂結構元素,實際上隻取4連通的數值
B=[0 1 0;1 1 1; 0 1 0];
n=size(B,1);
ind=find(B==0);
n_l=floor(n/2);
%對邊界圖進行擴充,目的是為了處理邊界點,這裡采用邊界鏡像擴充
I_pad=padarray(I,[n_l,n_l],'symmetric');
[M,N]=size(I);
J_Erosion=zeros(M,N);
J_Dilation=zeros(M,N);
for i=1:M
for j=1:N
%獲得圖像子塊區域
Block=I_pad(i:i+2*n_l,j:j+2*n_l);
C=Block.*B;
%删除0值,保留4連通數值
C=C(:);
C(ind)=[];
%腐蝕操作
J_Erosion(i,j)=min(C);
%膨脹操作
J_Dilation(i,j)=max(C);
end
end
subplot(131)
imshow(I)
subplot(132)
imshow(J_Erosion)
subplot(133)
imshow(J_Dilation)