杀猪刀 发表于 2015-5-6 17:40:53

求大神帮我把MATLAB的程序 表明每一步是什么意思 急 !!!!

程序代码:
用Roberts算子实现图像锐化的程序,利用Roberts算子法对灰度数字图像lena.jpg进行微分锐化的程序代码如下:
clear all;
I=imread('C:\MATLAB7\toolbox\wavelet\wavedemo\lena.jpg');   
I=im2double(I);
figure;
imshow(I);title('org img');
=size(I);
for i=2:height-1
    for j=2:width-1
      R(i,j)=abs(I(i+1,j+1)-I(i,j))+abs(I(i+1,j)-I(i,j+1));
    end
end
figure;
imshow(R,[]);
for i=1:height-1
    for j=1:width-1
      if (R(i,j)<0.25)
            R(i,j)=1;
      else R(i,j)=0;
      end
    end
end
figure;
imshow(R,[]);

用Sobel算子实现图像锐化的程序,图像lena.jpg进行锐化的程序代码如下:
clear all;
I=imread('C:\MATLAB7\toolbox\wavelet\wavedemo\lena.jpg');   
I=im2double(I);
figure;
imshow(I);title('org img');
=size(I);
%Dx=[-1 -2 -1
    %0   00
    %1   21];
%Dy=[-1 0 1
    %-2 0 2
    %-1 0 1];
for i=2:height-1
    for j=2:width-1
      Dx=+2*+;
      Dy=+2*+;
       S(i,j)=sqrt(Dx^2+Dy^2);
       end
end
figure;
imshow(S);
for i=1:255
    for j=1:255
       if (S(i,j)<1)
            S(i,j)=1;
      else S(i,j)=0;
      end
    end
end
figure;
imshow(S,[]);

用Prewitt算子实现图像锐化的程序,利用Prewitt算子对灰度数字图像lena.jpg进行图像锐化,程序代码如下
clear all;
I=imread('C:\MATLAB7\toolbox\wavelet\wavedemo\lena.jpg');   
I=im2double(I);
%figure;
%imshow(I);title('org img');

=size(I);
for i=2:height-1
    for j=2:width-1
      Dx=++;
      Dy=++;
       P(i,j)=sqrt(Dx^2+Dy^2);
      
    end
end
%figure;
%imshow(P,[]);
for i=1:height-1
    for j=1:width-1
      if (P(i,j)<0.5)
            P(i,j)=1;
      else P(i,j)=0;
      end
    end
end
figure;
imshow(P,[]);

    用Laplacian算子实现图像锐化的程序,利用Laplacian算子对灰度数字图像lena.jpg进行图像锐化,程序代码如下
clear all;
I=imread('C:\MATLAB7\toolbox\wavelet\wavedemo\lena.jpg');
=size(I);
M=double(I);
J=M;
for i=2:H-1
for j=2:W-1
      J(i,j)=4*M(i,j)-;
   end;
end;
subplot(1,2,1);imshow(I);title('原图');
subplot(1,2,2);imshow(uint8(J));title('锐化处理后的图');



    用Wallis算子实现图像锐化的程序,利用Wallis算子对灰度数字图像lena.jpg进行图像锐化程序代码如下
%Wallis微分算子
clear all;
I=imread('C:\MATLAB7\toolbox\wavelet\wavedemo\lena.jpg');
%figure
%imshow(I);
I=im2double(I);
=size(I);
for i=2:height-1
    for j=2:width-1
   II(i,j)=log10(I(i,j)+1)-0.25*(log10(I(i-1,j)+1)+log10(I(i+1,j)+1)+log10(I(i,j-1)+1)+log10(I(i,j+1)+1));
    end
end
min1=min(II);
min2=min(min1);
for i=2:height-1
   for j=2:width-1
      II(i,j)=46*II(i,j)-min2+0.4;
end
end
%figure
%imshow(II,[]);
for i=1:height-1
    for j=1:width-1
      if (II(i,j)<-0.035)
         II(i,j)=0;
      else II(i,j)=1;
      end
    end
end
figure;
imshow(II,[]);

杀猪刀 发表于 2015-5-6 18:09:27

求大神帮忙啊   明天要交的毕业论文
页: [1]
查看完整版本: 求大神帮我把MATLAB的程序 表明每一步是什么意思 急 !!!!