实验6 频率域滤波的操作步骤及低通、高通滤波的实现

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');

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值