画像ノイズ除去、フィルタリング、エッジ検出matlab実現

9919 ワード

I=imread('C:\Users\Administrator\Desktop\  1.jpg');%    
J1=imnoise(I,'gaussian',0,0.0005);%     0,   0.005     
J=rgb2gray(J1);
subplot(2,3,1);imshow(I);
title('    ');
subplot(2,3,2); imshow(J);
title('           ');
%  MATLAB    filter2               
K1=filter2(fspecial('average',1),J)/255; %     1
K2=filter2(fspecial('average',5),J)/255;%      5
K3=filter2(fspecial('average',7),J)/255; %     7
K4= filter2(fspecial('average',9),J)/255; %     9
subplot(2,3,3);imshow(K1);
title('      1');
subplot(2,3,4); imshow(K2);
title('      2');
subplot(2,3,5);imshow(K3);
title('      3');
subplot(2,3,6);imshow(K4);
title('      4'); 
img=imread('C:\Users\Administrator\Desktop\  1.jpg');%    
imggray=rgb2gray(img);
imggrayfilt=filter2(fspecial('average',1),J)/255;
figure(1)
imshow(imggray);
figure(2)
imhist(imggrayfilt);
figure(3)
imshow(imggrayfilt);
imgbw = im2bw(imggrayfilt,graythresh(imggrayfilt));
figure(4)
imshow(imgbw);
%    :                     (threshold)。
%   im2bw               ,        ,
%                   。
%                                  。
I=imread('C:\Users\Administrator\Desktop\  1.jpg');%      
I=rgb2gray(I);
BW1=edge(I,'sobel'); % SOBEL        
BW2=edge(I,'roberts');% Roberts        
BW3=edge(I,'prewitt'); % prewitt        
BW4=edge(I,'log'); % log        
BW5=edge(I,'canny'); % canny        
%h=fspecial('gaussian',5);
BW6=edge(I,'canny');
figure(1);
subplot(2,3,1), imshow(BW1);
title('sobel edge check');
subplot(2,3,2), imshow(BW2);
title('roberts edge check');
subplot(2,3,3), imshow(BW3);
title('prewitt edge check');
subplot(2,3,4), imshow(BW4);
title('log edge check');
subplot(2,3,5), imshow(BW5);
title('canny edge check');
subplot(2,3,6), imshow(BW6);
title('gasussian&canny edge check');%        Canny        
figure(2);
%Egray = uint8(edge(I,'canny'));
%for i = 1:300
%    for j = 1:300
%        if Egray(i,j)==0
%            I(i,j)=0;
%        end
%    end
%%end
%imshow(I);