当前位置: 首页 > news >正文

《数字图像处理》实验报告四

一、实验任务与要求

  • 对 Fig0403.tif 进行傅里叶变换并显示其频谱图像;fft2(x)
  • 对 Fig0405.tif 图像进行填充和非填充的高斯滤波,并观察其不同;paddedsize,fft2(x,m,n)
  • 由 sobel 空间滤波算子生成相应的频率域滤波算子并比较各自对 Fig0409.tif 的滤波效果;fspecial( 'sobel' )
  • 任意设计一个频域的低通或高通滤波器,并对 Fig0413.tif 进行处理

二、实验报告 

(一)对 Fig0403.tif 进行傅里叶变换并显示其频谱图像

1、转换图像类型为 double

f=imread('E:\Ex_4\Fig0403.tif');
f_d=im2double(f);

2、使用 fft2 进行傅里叶变换

f2=fft2(f_d);
f2=fftshift(f2); %将零频点移到频谱中间
f2=abs(f2); %取绝对值
F2=log(abs(f2)+1); %取模并进行缩放

3、效果

(二)对 Fig0405.tif 图像进行填充和非填充的高斯滤波,并观察其不同

1、转换图像类型为 double

f=imread('E:\Ex_4\Fig0405.tif');
f=im2double(f);
subplot(1,3,1)
imshow(f);title('原图');

2、填充的高斯滤波

(1)使paddedsize 获得填充参数

PQ=paddedsize(size(f));

(2)得到有填充图像的傅里叶变换

F=fft2(f,PQ(1),PQ(2));

 (3)使用 freqz2 生成一个大小为 PQ(1)*PQ(2) 的高斯频率域滤波器

h=fspecial('gaussian',[PQ(1),PQ(2)],5);
H=freqz2(h,PQ(1),PQ(2));

 (4)使用 ifftshift 进行反变换

H=ifftshift(H);

(5)滤波器乘以傅里叶变换,并使用 ifft2 进行傅里叶反变换

G=H.*F;
g=ifft2(G);

 (6)将左上部的矩形修剪为原始大小,并转换回 uint8 类型

g=g(1:size(f,1),1:size(f,2));
g=im2uint8(g);
subplot(1,3,2)
imshow(g);title('填充');

3、不填充的高斯滤波 

[r,c]=size(f);
F2=fft2(f); %无填充的傅里叶变换
h=fspecial('gaussian',[r,c],5);
H2=freqz2(h,r,c);
H2=ifftshift(H2);
G2=H2.*F2;
g2=ifft2(G2);
g2=im2uint8(g2);
subplot(1,3,3)
imshow(g2);title('无填充');

4、效果

     

可以看出,填充的高斯滤波处理图像四周边缘有都有黑边,而不填充的高斯滤波处理只有上边缘有黑边。 

(三)由 sobel 空间滤波算子生成相应的频率域滤波算子并比较各自对 Fig0409.tif 的滤波效果

1、转换图像类型为 double 进行傅里叶变化

f=imread('E:\Ex_4\Fig0409.tif');
subplot(1,3,1)
imshow(f);title('原图');
f_d=im2double(f); 
f2=fft2(f_d);

2、 sobel 空间域滤波器

h=fspecial('sobel'); %sobel空间滤波器
f1=imfilter(f,h);
subplot(1,3,2);
imshow(f1);title('空间域滤波算子处理');

3、sobel 频率域滤波器

(1)使用 paddedsize 获得填充参数

PQ=paddedsize(size(f));

(2)得到有填充图像的傅里叶变换

f3=fft2(f_d,PQ(1),PQ(2));

(3)使用 freqz2 转换为频率域滤波器,并进行反变换

H=freqz2(h,PQ(1),PQ(2));
H=ifftshift(H);

(4)滤波器乘以傅里叶变换,并使用 ifft2 进行傅里叶反变换

G=H.*f3;
g=ifft2(G);
g=g(1:size(f,1),1:size(f,2));
g=im2uint8(g);
subplot(1,3,3);
imshow(g);title('sobel频率域滤波算子');

4、效果

可以看出,空间域滤波和频域滤波对图像的滤波效果并无明显区别。

(四)任意设计一个频域的低通或高通滤波器,并对 Fig0413.tif 进行处理

1、对图像进行傅里叶变化并将分量移到频谱中心

f=imread('E:\Ex_4\Fig0413.tif');
subplot(1,2,1);imshow(f);title('原图');
f=im2double(f); %转换为double类型
f2=fft2(f); %傅里叶变换
f2=fftshift(f2); %将变换的原点移到频率矩形的中心

2、设计滤波器的传递函数

[R,C]=size(f2);
nn=2;
d0=50;
r=fix(R/2);
c=fix(C/2);
result=ones(R,C); %创建一个R*C的全一矩阵
for i=1:Rfor j=1:Cd=sqrt((i-r)^2+(j-c)^2);h=1/(1+0.414*(d/d0)^(2*nn));result(i,j)=h*f2(i,j);end
end
result=ifftshift(result);
f3=ifft2(result);
f4=im2uint8(real(f3));
subplot(1,2,2)
imshow(f4);title('频域滤波器处理');

3、处理效果

可以看出,产生了模糊效果

http://www.lryc.cn/news/383571.html

相关文章:

  • 算法04 模拟算法之一维数组相关内容详解【C++实现】
  • 【技术解码】百数SRM:如何助力企业快速优化供应链管理?
  • 想要用tween实现相机的移动,three.js渲染的canvas画布上相机位置一点没动,如何解决??
  • SQL连接与筛选:解析left join on和where的区别及典型案例分析
  • oliva-bruteforce-luks
  • 图像超分辨率重建
  • 小米上架遇到的隐私协议问题
  • 【区分vue2和vue3下的element UI Message 消息提示组件,分别详细介绍属性,事件,方法如何使用,并举例】
  • 架构设计 - Nginx Lua 缓存配置
  • lua的GC
  • 基于python爬虫对豆瓣影评分析系统的设计与实现
  • 想让梦想照进现实?六西格玛绿带培训为你架起桥梁
  • 大数据面试题之HDFS
  • (9)农作物喷雾器
  • 智慧互联:Vatee万腾平台展现科技魅力
  • Charles抓包工具系列文章(四)-- Rewrite 重写工具
  • 【PB案例学习笔记】-24创建一个窗口图形菜单
  • 环境配置的相关问题
  • github配置可拉取项目到本地
  • Snippet-AndroidFontWeight
  • 选择合适的分类评价指标:传统指标与自定义指标的权衡
  • 数据结构-线性表的链式表示
  • DDL-表操作-数据类型
  • python实例代码 - 多层感知机预测销售情况
  • JVM专题十:JVM中的垃圾回收机制
  • MySQL入门学习-索引.创建索引
  • ChatGPT智能对话绘画系统 带完整的安装源代码包以及搭建教程
  • 巴中市红色旅游地管理系统
  • ROS2从入门到精通2-2:详解机器人3D可视化工具Rviz2与案例分析
  • 国企:2024年6月中国铁路相关招聘信息,6.27截止