clear all, close all;
[x,map]=imread('F:\My Documents\My Pictures\boa\cu.jpg');
figure, imshow(x); %make 1 figure to show image.
%m=rgb2gray(x);% rgb -> gray
%figure(2), imshow(m);
m=double(x)
[x,y,z]=size(x) ;
imfull=zeros(x,y,z); %Matrix of full image
fil=zeros(1,9); %matrix of filter with 3 * 3.
for q=1:3 ;% rgb
for o=2:x-1 ;% every 2nd to the one before the last
for p=2:y-1; % every 2nd to the one before the last
fil(1) = m(o-1,p-1,q);%matrix (1,1)
fil(2) = m(o-1,p,q);%matrix (1,2)
fil(3) = m(o-1,p+1,q);%matrix (1,3)
fil(4) = m(o,p-1,q);%matrix (2,1)
fil(5) = m(o,p,q);%matrix (2,2)
fil(6) = m(o,p+1,q);%matrix (2,3)
fil(7) = m(o+1,p-1,q);%matrix (3,1)
fil(8) = m(o+1,p,q);%matrix (3,2)
fil(9) = m(o+1,p+1,q);%matrix (3,3)
imfull(o,p,q) = sum(sum(fil))/9;
end
end
end
n=uint8(imfull);
figure(3),imshow(n);
BW=im2bw(n,0.7);
figure(4), imshow(BW);
clear all, close all;
[x,map]=imread('F:\My Documents\My Pictures\boa\cu.jpg');
figure, imshow(x); %make 1 figure to show image.
m=rgb2gray(x);% rgb -> gray
figure(2), imshow(m);
[x,y,z]=size(m) ;
b=zeros(x,y,z); %Matrix of full image
r=zeros(1,9); %matrix of filter with 3 * 3.
for q=1:3 ;% rgb
for o=2:x-1 ;% every 2nd to the one before the last
for p=2:y-1; % every 2nd to the one before the last
r(1) = m(o-1,p-1);%matrix (1,1)
r(2) = m(o-1,p);%matrix (1,2)
r(3) = m(o-1,p+1);%matrix (1,3)
r(4) = m(o,p-1);%matrix (2,1)
r(5) = m(o,p);%matrix (2,2)
r(6) = m(o,p+1);%matrix (2,3)
r(7) = m(o+1,p-1);%matrix (3,1)
r(8) = m(o+1,p);%matrix (3,2)
r(9) = m(o+1,p+1);%matrix (3,3)
b(o,p) = sum(r)/9;
end
end
end
n=uint8(b);
figure(3),imshow(n);
BW=im2bw(n,0.7);
figure(4), imshow(BW);作者: zet0r 時間: 2006-8-25 19:39
5X5 彩色平滑濾波, 2值化:
clear all, close all;
[x,map]=imread('F:\My Documents\3-18.jpg');
figure(1), imshow(x); %make 1 figure to show image.
m=double(x);
[x,y,z]=size(m);
r=zeros(x,y,z);
filter=zeros(1,25);
for i=1:3;
for o=3:x-2;
for p=3:y-2;
filter(1)=m(o-2,p-2,i);
filter(2)=m(o-1,p-2,i);
filter(3)=m(o,p-2,i);
filter(4)=m(o+1,p-2,i);
filter(5)=m(o+2,p-2,i);
filter(6)=m(o-2,p-1,i);
filter(7)=m(o-1,p-1,i);
filter(8)=m(o,p-1,i);
filter(9)=m(o+1,p-1,i);
filter(10)=m(o+2,p-1,i);
filter(11)=m(o-2,p,i);
filter(12)=m(o-1,p,i);
filter(13)=m(o,p,i);
filter(14)=m(o+1,p,i);
filter(15)=m(o+2,p,i);
filter(16)=m(o-2,p+1,i);
filter(17)=m(o-1,p+1,i);
filter(18)=m(o,p+1,i);
filter(19)=m(o+1,p+1,i);
filter(20)=m(o+2,p+1,i);
filter(21)=m(o-2,p+2,i);
filter(22)=m(o-1,p+2,i);
filter(23)=m(o,p+2,i);
filter(24)=m(o+1,p+2,i);
filter(25)=m(o+2,p+2,i);
r(o,p,i)=sum(sum(filter))/25;
end
end
end
r=uint8(r);
figure(2),imshow(r);
BW=im2bw(r,0.7);
figure(4), imshow(BW);作者: zet0r 時間: 2006-8-25 19:43
5X5, 彩色, 黑白各別濾波之後再個別顯示出來, 將黑白的作二值化!
clear all, close all;
[x,map]=imread('F:\My Documents\3-18.jpg');
figure(1), imshow(x); %make 1 figure to show image.
blackwhite=rgb2gray(x);
figure(3), imshow(blackwhite);
m=double(x);
m2=double(blackwhite);
[x,y,z]=size(m);
[x2,y2,z2]=size(m2);
r=zeros(x,y,z);
r2=zeros(x2,y2,z2);
filter=zeros(1,25);
filter2=zeros(5,5);
for i=1:3;
for o=3:x-2;
for p=3:y-2;
filter(1)=m(o-2,p-2,i);
filter(2)=m(o-1,p-2,i);
filter(3)=m(o,p-2,i);
filter(4)=m(o+1,p-2,i);
filter(5)=m(o+2,p-2,i);
filter(6)=m(o-2,p-1,i);
filter(7)=m(o-1,p-1,i);
filter(8)=m(o,p-1,i);
filter(9)=m(o+1,p-1,i);
filter(10)=m(o+2,p-1,i);
filter(11)=m(o-2,p,i);
filter(12)=m(o-1,p,i);
filter(13)=m(o,p,i);
filter(14)=m(o+1,p,i);
filter(15)=m(o+2,p,i);
filter(16)=m(o-2,p+1,i);
filter(17)=m(o-1,p+1,i);
filter(18)=m(o,p+1,i);
filter(19)=m(o+1,p+1,i);
filter(20)=m(o+2,p+1,i);
filter(21)=m(o-2,p+2,i);
filter(22)=m(o-1,p+2,i);
filter(23)=m(o,p+2,i);
filter(24)=m(o+1,p+2,i);
filter(25)=m(o+2,p+2,i);
r(o,p,i)=sum(sum(filter))/25;
end
end
end
end
end
end
r=uint8(r);
r2=uint8(r2);
figure(2),imshow(r);
figure(5),imshow(r2);
BW=im2bw(r2,0.5);
figure(6), imshow(BW);作者: Iamcougar 時間: 2006-8-30 01:03
你可以用 function 來寫...