(实验操作)掩膜高通滤波filter命令,锐化的matlab 处理 包括锐化前处理;模糊化锐化

实验操作资料比较粗糙,基本上,是边做实验,边做记录.

命令操作如下:

>> clear
>> i=imread('plane.jpg');

>>  I=rgb2gray(i);
>> imagetype=isgray(I)
Warning: isgray is obsolete and may be removed in the future.
See product release notes for more information.
> In isgray at 27

imagetype =

     1

>> I=double(I);
>> imshow(I);
>> H2=[-1 -1 -1;-1 -9 -1;-1 -1 -1];
>> J1=filter2(H2,I); 
>> figure,imshow(J1,map);$//其实,在这里,这个,这个map是应该去掉的,不然会出错,除非一开始,就用

$//[i,map]=imread('plane.jpg');这个命令读取图片.



??? Undefined function or variable 'map'.

>> [i,map]=imread('plane.jpg');
>>  figure,imshow(J1,map);

>> M=[1 1 1;1 1 1;1 1 1]/9;
>> J2=filter2(M,I);
>> J3=I-J2;
>> figure,imshow(J3,map);
>>  figure,imshow(J1);
>> figure,imshow(J3);
>>

 

 

采取其他方法,进行滤波,结果差不多说明,锐化前,做好进行一些处理,

>> I=rgb2gray(i);
>>  imwrite(I,'plane_0.JPG','JPG');
>> info=imfinfo('plane_0.JPG');
>> info

info =

           Filename: 'plane_0.JPG'
        FileModDate: '16-May-2009 13:10:14'
           FileSize: 15252
             Format: 'jpg'
      FormatVersion: ''
              Width: 640
             Height: 480
           BitDepth: 8
          ColorType: 'grayscale'
    FormatSignature: ''
    NumberOfSamples: 1
       CodingMethod: 'Huffman'
      CodingProcess: 'Sequential'
            Comment: {}

>> subplot(2,2,1),imshow(I);title('原图像');%显示原图像
>> H=fspecial('sobel');
>> I2=filter2(H,I);
>> subplot(2,2,2);%显示sobel算子锐化图像
>> imshow(I2);
>> subplot(2,2,2);%显示sobel算子锐化图像
>> H=fspecial('prewitt');%应用prewitt算子锐化图像
>> I3=filter2(H,I);%prewitt算子滤波锐化
>> subplot(2,2,3);imshow(I3); %显示prewitt算子锐化图像
>> title('prewitt算子锐化图像');
>> H=fspecial('log'); %应用log算子锐化图像
>> I4=filter2(H,I); %log算子滤波锐化
>> subplot(2,2,4);imshow(I4);%显示log算子锐化图像
>> title('log算子锐化图像')
>>
>>

 

 

锐化前的预处理:

锐化分频域和时域两种方法,在时域可以使用简单的颜色变换来进锐化,但更为合理的做法是在频域通过卷积的方式进行锐化和模糊处理,如最常见的是高斯算法;

关键词:

高斯算法

模糊化锐化

中值滤波和领域平均法滤波

先高斯滤波,再锐化

>> [i,map]=imread('plane.jpg');

>> I=rgb2gray(i);

>> Img = double(I);
>> alf=3;
>> n=10;%定义模板大小
n1=floor((n+1)/2);%计算中心
for i=1:n
    for j=1:n
      b(i,j) =exp(-((i-n1)^2+(j-n1)^2)/(4*alf))/(4*pi*alf);
    end
end
Img1 = imfilter(I,b,'conv'); 
subplot(121),imshow(I);title('原图')
subplot(122),imshow(Img1),title('高斯滤波')
>> H=fspecial('prewitt');%应用prewitt算子锐化图像
>>  I3=filter2(H,Img1);%rewitt算子滤波锐化
>> subplot(2,2,3);imshow(I3) %显示prewitt算子锐化图像
>>

image

这个结果显然是不能接受的,比起前面的实验,效果是差得多,或许它实现的不是锐化这个功能,而是一个误操作,

posted @ 2009-05-16 12:50  fleetwgx  阅读(1435)  评论(0编辑  收藏  举报