长方形目标物A,内部有噪声导致的空洞,周围有噪声块。处理效果,目标物本身除了四个角的直角变为圆角外没有变化。
1.结构元素
用来对图像做处理的元素。此处用B表示。
2.腐蚀
对于Z^2中的集合A和B,B对A的腐蚀定义为:
可知B对A的腐蚀是一个用z平移的B包含在A中的所有点z的集合。
3.膨胀
对于Z^2中的集合A和B,B对A的膨胀定义为:
可知以B关于其原点的映像,并且以z对映像进行平移为基础。
4.膨胀和腐蚀的对偶性
(1).用B来膨胀A得到的集合是B的位移与A至少有一个非零
元素相交时B的原点位置的集合。
(2).A用B来腐蚀的结果:B完全包含在A中时B的原点位置的集合。
(3).膨胀是将与物体接触的所有背景点合并到该物体中,使
(4).边界向外部扩张的过程。可以用来填补物体中的空洞。
(5).腐蚀是一种消除边界点,使边界向内部收缩的过程。可以用来消除小且无意义的物体。
5.代码
%write by 长安 Rjex
I=imread('1.png'); %读取一幅图像
I = rgb2gray(I); %将读取的图像变为灰度图
[m n]=size(I);
%腐蚀
I2 = uint8(ones(m,n).*255); %I2为变换后的图像
k = 41; %确定腐蚀结构体
t = (k-1)/2;
D = zeros(k);
for i = t+1 : m-t
for j = t+1 : n-t
D =I(i-t:i+t,j-t:j+t);
M = find(D == 255);
if isempty(M) == 1
I2(i,j) = I(i,j);
end
end
end
figure(1);
imshow(I2);
%膨胀
k2 = 41;
t2 = (k2-1)/2;
I3 = uint8(ones(m+2*t2,n+2*t2).*255);
for i = t2+1:m+t2
for j = t2+1:n+t2
if I2(i-t2,j-t2)~=255
I3(i-t2:i+t2,j-t2:j+t2)=I2(i-t2,j-t2);
end
end
end
figure(2);
imshow(I3);
%膨胀
k2 = 41;
t2 = (k2-1)/2;
I4 = uint8(ones(m+2*t2,n+2*t2).*255);
for i = t2+1:m+t2
for j = t2+1:n+t2
if I3(i-t2,j-t2)~=255
I4(i-t2:i+t2,j-t2:j+t2)=I3(i-t2,j-t2);
end
end
end
figure(3);
imshow(I4);
%再腐蚀
I5 = uint8(ones(m,n).*255); %I2为变换后的图像
k = 41; %确定腐蚀结构体
t3 = (k-1)/2;
D = zeros(k);
for i = t3+1 : m-t3
for j = t3+1 : n-t3
D =I4(i-t3:i+t3,j-t3:j+t3);
M = find(D == 255);
if isempty(M) == 1
I5(i,j) = I4(i,j);
end
end
end
figure(4);
imshow(I5);
6.结果
B腐蚀A可得:
对上图膨胀可得:
对上图再一次膨胀可得:
再腐蚀即可: