1. 读入f2.tif图像,使用fspecial函数获取sobel空间滤波器,使用freqz2函数将获得空间滤波器转换为频率域滤波器,然后使用dftfilt函数进行频率域滤波,要求结果显示读入的原图像、空间滤波后结果及频率域滤波后结果。
f = imread('f2.tif');
h = fspecial('sobel');
g = imfilter(f, h);
PQ = paddedsize(size(f));
H = freqz2(h,PQ(1),PQ(2));
f2 = dftfilt(f,H);
subplot(221);imshow(f);title('原图');
subplot(222);imshow(g);title('空间滤波');
subplot(223);imshow(f2,[]);title('频域滤波');
2.的结果读入f4.tif图像,使用lpfilter函数,使用半径分别为5, 15,30, 80和230分别进行理想低通滤波操作,要示显示结果包括原图、半径分别为5,15,30, 80和230分别进行滤波后。
f=imread('f4.tif');
[M,N]=size(f);
[f,revertclass]=tofloat(f);
subplot(231);
imshow(f);
title('原图像');
subplot(232);
D1=5;
H1=lpfilter('ideal',500 ,500 ,5);
f1=dftfilt(f,H1);
f1=revertclass(f1);
imshow(f1);
title('半径为5');
subplot(233);
H1=lpfilter('ideal',500 ,500 ,15);
f1=dftfilt(f,H1);
f1=revertclass(f1);
imshow(f1);
title('半径为15');
subplot(234);
H1=lpfilter('ideal',500 ,500 ,30);
f1=dftfilt(f,H1);
f1=revertclass(f1);
imshow(f1);
title('半径为30');
subplot(235);
H1=lpfilter('ideal',500 ,500 ,80);
f1=dftfilt(f,H1);
f1=revertclass(f1);
imshow(f1);
title('半径为80');
subplot(236);
H1=lpfilter('ideal',500 ,500 ,230);
f1=dftfilt(f,H1);
f1=revertclass(f1);
imshow(f1);
title('半径为230');
f=imread(‘f4.tif’);
[M,N]=size(f);
[f,revertclass]=tofloat(f);
subplot(231);
imshow(f);
title(‘原图像’);
subplot(232);
D1=5;
H1=lpfilter(‘gaussian’,500 ,500 ,5);
f1=dftfilt(f,H1);
f1=revertclass(f1);
imshow(f1);
title(‘半径为5’);
subplot(233);;
H1=lpfilter(‘gaussian’,500 ,500 ,15);
f1=dftfilt(f,H1);
f1=revertclass(f1);
imshow(f1);
title(‘半径为15’);
subplot(234);;
H1=lpfilter(‘gaussian’,500 ,500 ,30);
f1=dftfilt(f,H1);
f1=revertclass(f1);
imshow(f1);
title(‘半径为30’);
subplot(235);;
H1=lpfilter(‘gaussian’,500 ,500 ,80);
f1=dftfilt(f,H1);
f1=revertclass(f1);
imshow(f1);
title(‘半径为80’);
subplot(236);;
H1=lpfilter(‘gaussian’,500 ,500 ,230);
f1=dftfilt(f,H1);
f1=revertclass(f1);
imshow(f1);
title(‘半径为230’);
f=imread('f4.tif');
[M,N]=size(f);
[f,revertclass]=tofloat(f);
subplot(231);
imshow(f);
title('原图像');
subplot(232);
D1=5;
H1=lpfilter('gaussian',500 ,500 ,5);
f1=dftfilt(f,H1);
f1=revertclass(f1);
imshow(f1);
title('半径为5');
subplot(233);;
H1=lpfilter('gaussian',500 ,500 ,15);
f1=dftfilt(f,H1);
f1=revertclass(f1);
imshow(f1);
title('半径为15');
subplot(234);;
H1=lpfilter('gaussian',500 ,500 ,30);
f1=dftfilt(f,H1);
f1=revertclass(f1);
imshow(f1);
title('半径为30');
subplot(235);;
H1=lpfilter('gaussian',500 ,500 ,80);
f1=dftfilt(f,H1);
f1=revertclass(f1);
imshow(f1);
title('半径为80');
subplot(236);;
H1=lpfilter('gaussian',500 ,500 ,230);
f1=dftfilt(f,H1);
f1=revertclass(f1);
imshow(f1);
title('半径为230');
4. 读入f4.tif图像,使用hpfilter与dftfilt函数,使用半径分别为5,15,30, 80和230分别进行理想高通滤波操作,要示显示结果包括原图、半径分别为5,15,30, 80和230分别进行滤波后的结果。
f=imread('f4.tif');
[M,N]=size(f);
[f,revertclass]=tofloat(f);
subplot(231);
imshow(f);
title('原图像');
subplot(232);
D1=5;
H1=hpfilter('ideal',500 ,500 ,5);
f1=dftfilt(f,H1);
f1=revertclass(f1);
imshow(f1);
title('半径为5');
subplot(233);;
H1=hpfilter('ideal',500 ,500 ,15);
f1=dftfilt(f,H1);
f1=revertclass(f1);
imshow(f1);
title('半径为15');
subplot(234);;
H1=hpfilter('ideal',500 ,500 ,30);
f1=dftfilt(f,H1);
f1=revertclass(f1);
imshow(f1);
title('半径为30');
subplot(235);;
H1=hpfilter('ideal',500 ,500 ,80);
f1=dftfilt(f,H1);
f1=revertclass(f1);
imshow(f1);
title('半径为80');
subplot(236);;
H1=hpfilter('ideal',500 ,500 ,230);
f1=dftfilt(f,H1);
f1=revertclass(f1);
imshow(f1);
title('半径为230');
5. 读入f4.tif图像,使用hpfilter与dftfilt函数,使用半径分别为5,15,30, 80和230分别进行高斯高通滤波操作,要示显示结果包括原图、半径分别为5,15,30, 80和230分别进行滤波后的结果。
f=imread('f4.tif');
[M,N]=size(f);
[f,revertclass]=tofloat(f);
subplot(231);
imshow(f);
title('原图像');
subplot(232);
D1=5;
H1=hpfilter('gaussian',500 ,500 ,5);
f1=dftfilt(f,H1);
f1=revertclass(f1);
imshow(f1);
title('半径为5');
subplot(233);;
H1=hpfilter('gaussian',500 ,500 ,15);
f1=dftfilt(f,H1);
f1=revertclass(f1);
imshow(f1);
title('半径为15');
subplot(234);;
H1=hpfilter('gaussian',500 ,500 ,30);
f1=dftfilt(f,H1);
f1=revertclass(f1);
imshow(f1);
title('半径为30');
subplot(235);;
H1=hpfilter('gaussian',500 ,500 ,80);
f1=dftfilt(f,H1);
f1=revertclass(f1);
imshow(f1);
title('半径为80');
subplot(236);;
H1=hpfilter('gaussian',500 ,500 ,230);
f1=dftfilt(f,H1);
f1=revertclass(f1);
imshow(f1);
title('半径为230');