?? dne.m
字號:
clc;
clear;
hold off;
I = imread('A.bmp');
figure(1);
imshow(I);
title('原圖');
%-----------------------------------開運算(消除背景噪聲)--------------------------------------
%-----------------------初始化----------------------
for i = 1:256
for j = 1:256
J(i,j) = 255;
end
end
%-----------------------腐蝕------------------------
for i = 2:255
for j = 2:255
if I(i-1,j-1) == 0
J(i,j) = 0;
end
if I(i,j-1) == 0
J(i,j) = 0;
end
if I(i+1,j-1) == 0
J(i,j) = 0;
end
if I(i-1,j) == 0
J(i,j) = 0;
end
if I(i+1,j) == 0
J(i,j) = 0;
end
if I(i-1,j+1) == 0
J(i,j) = 0;
end
if I(i,j+1) == 0
J(i,j) = 0;
end
if I(i+1,j+1) == 0
J(i,j) = 0;
end
end
end
%-----------------------填充------------------------
for i = 1:256
J(1,i) = 0;
J(256,i) = 0;
end
for j = 1:256
J(j,1) = 0;
J(j,256) = 0;
end
figure(2);
imshow(J);
title('開運算-腐蝕處理后');
%-----------------------初始化----------------------
for i = 1:256
for j = 1:256
K(i,j) = 0;
end
end
%-----------------------膨脹------------------------
for i = 2:255
for j = 2:255
if J(i-1,j-1) == 255
K(i,j) = 255;
end
if J(i,j-1) == 255
K(i,j) = 255;
end
if J(i+1,j-1) == 255
K(i,j) = 255;
end
if J(i-1,j) == 255
K(i,j) = 255;
end
if J(i+1,j) == 255
K(i,j) = 255;
end
if J(i-1,j+1) == 255
K(i,j) = 255;
end
if J(i,j+1) == 255
K(i,j) = 255;
end
if J(i+1,j+1) == 255
K(i,j) = 255;
end
end
end
figure(3);
imshow(K);
title('開運算-膨脹處理后');
%--------------------------------end of 開運算--------------------------------------
%--------------------------------------閉運算(消除前景噪聲)---------------------------------------
%-----------------------初始化----------------------
for i = 1:256
for j = 1:256
L(i,j) = 0;
end
end
%-----------------------膨脹------------------------
for i = 2:255
for j = 2:255
if K(i-1,j-1) == 255
L(i,j) = 255;
end
if K(i,j-1) == 255
L(i,j) = 255;
end
if K(i+1,j-1) == 255
L(i,j) = 255;
end
if K(i-1,j) == 255
L(i,j) = 255;
end
if K(i+1,j) == 255
L(i,j) = 255;
end
if K(i-1,j+1) == 255
L(i,j) = 255;
end
if K(i,j+1) == 255
L(i,j) = 255;
end
if K(i+1,j+1) == 255
L(i,j) = 255;
end
end
end
figure(4);
imshow(L);
title('閉運算-膨脹處理后');
%-----------------------初始化----------------------
for i = 1:256
for j = 1:256
M(i,j) = 255;
end
end
%-----------------------腐蝕------------------------
for i = 2:255
for j = 2:255
if L(i-1,j-1) == 0
M(i,j) = 0;
end
if L(i,j-1) == 0
M(i,j) = 0;
end
if L(i+1,j-1) == 0
M(i,j) = 0;
end
if L(i-1,j) == 0
M(i,j) = 0;
end
if L(i+1,j) == 0
M(i,j) = 0;
end
if L(i-1,j+1) == 0
M(i,j) = 0;
end
if L(i,j+1) == 0
M(i,j) = 0;
end
if L(i+1,j+1) == 0
M(i,j) = 0;
end
end
end
%-----------------------填充------------------------
for i = 1:256
M(1,i) = 0;
M(256,i) = 0;
end
for j = 1:256
M(j,1) = 0;
M(j,256) = 0;
end
figure(5);
imshow(M);
title('閉運算-腐蝕處理后');
%--------------------------------end of 閉運算--------------------------------------
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -