实验操作资料比较粗糙,基本上,是边做实验,边做记录.
命令操作如下:
>> 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是应该去掉的,不然会出错,除非一开始,就用
??? 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算子锐化图像
>>
这个结果显然是不能接受的,比起前面的实验,效果是差得多,或许它实现的不是锐化这个功能,而是一个误操作,
请发表评论