c# 傅里叶变换 频域_傅里叶变换在MATLAB中的应用(频域滤波)

1c88916428772ccd6bf422ed6177a966.png点击上方蓝字  关注我们0ceac3eca4f8c58dbe08145c124b8a1e.png

本文主要讲述如何在MATLAB中实现频域滤波,那么,怎么实现呢,我们这里讲的所有的滤波都是通过傅里叶变换在频域中实现的,所有这部分和傅里叶变换渊源很深,至于傅里叶变换本身,我自己也不能解释的很清楚,我们只讲他如何在matlab中实现和应用。

深入了解傅里叶变换请戳文末链接!!!!

大佬介绍的深入浅出,每每有茅塞顿开之感,大家学完教材上有关傅里叶变换的,再看看文中所写,真的是柳暗花明,瞻仰大佬之余,大家别忘了切回来啊,我们继续讲MATLAB。

一、图像增强中的频域滤波(通过傅里叶变换实现)

1.频域滤波的基本概念

空间域和频域线性滤波的基础都是卷积定理,该定理可以写作:

ff8c6fe887ed87d3acc02fcce62ba05c.png

至于卷积定理本身是什么,大家可以看看知乎上另一个大佬的解释:

J Pan:“卷积”其实没有那么难以理解

https://zhuanlan.zhihu.com/p/41609577

我们依旧是只讲述滤波问题,我们这里需要知道的是,频域滤波的目的是选择一个滤波器传递函数,以便按照指定的方式修改F(u,v)。

例如,图(a)所示的滤波器有一- 个传递函数,在乘以-一个居中处理后的函数F(u, 0)后,该传递函数会衰减F(u, v)的高频分量,而保持低频分量相对不变。具有这种特性的滤波器称为低通滤波器。低通滤波器的结果会导致图像出现模糊现象(平滑)。

1779a6d19a5100297cc40f077fd60bb7.png

基于卷积理论,我们知道为了在空间域中得到相应的滤波后的图像,仅需要计算积H(u, v),F(u, v)的傅里叶逆变换。应当记住,上述方法所得到的结果与我们在空间域中使用卷积所得到的结果是相同的,只要滤波掩模h(x,y)是H(u,v)的傅里叶变换。

2.函数介绍

paddedsize函数,他的作用是填充输入图像,需要注意的是,很多人的matlab文件里面没有这个函数,需要自己定义,所以调用的时候会显示错误,可以关注公众号Asoul水云天课堂,后台回复padd函数获取源代码,定义的步骤是,复制源代码,新建脚本,粘贴运行之后保存在matlab文件夹中。

freqz2函数  

[H,f1,f2] = freqz2(h) 的返回值 H是h的64*64频率响应,f1和f2是长度为64的频率向量。h 是一个二维的有限脉冲响应滤波器(FIR filter),其形式为计算单元(computational molecule)。

3.freqz2函数和fft函数的比较

对于一个给定的空间滤波器h,生成一个频域滤波器H的明显方法是令H=fft2(h,PQ1,PQ2),而freqz2函数可以把空间滤波器转换成等价的频域滤波器,他可以求系统的频率响应。

4.DFT(离散傅里叶变换)滤波的基本步骤

Step1.使用函数paddedsize获得填充参数:

PQ = paddedsize (size(f)) ;

Step2.得到使用填充的傅里叶变换:

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

Step3.生成个大小为PQ(1) x PQ (2)的滤波函数H。该滤波函数的格式必须如图4.4(b)所示。另外,若它已居中,则在使用该滤波函数之前要令

H= fftshift (H)。

Step4.将变换乘以滤波函数:

G = H.*F;

Step5.获得G的傅里叶逆变换的实部:

g=real (ifft2(G));

Step6:将右上部的矩形修剪为原始大小

g=g(1:size(f,1),1:size(f,2));

如果看不懂没关系,后面会举例子。

二、空间滤波与频域滤波的比较

这个实验比较有综合性,也能有助于我们更透彻的掌握滤波这部分的内容。

题目:空间滤波和频域滤波的比较

Step1:获得图像f的傅里叶频谱

g=imread('hh.jpg');
f=rgb2gray(g);
subplot(2,3,1);
imshow(f)
F=fft2(f);
S=fftshift(log(1 + abs(F)) ) ;
S = gscale(S) ;
subplot(2,3,2);
imshow(S)

28481b521e77ceb23fa5844e8c6ff180.png

Step2:生成滤波器

空间滤波器

h=fspecial('sobel')'
h=[1 0 -1;2 0 -2;1 0 -1];
freqz2(h) %查看滤波器图形

7de51777880022f575425c85b0075460.png

频域滤波器可以用如下函数生成:

PQ = paddedsize (size(f));
H = freqz2 (h,PQ(1),PQ(2)) ;
H1 = ifftshift(H);
subplot(2,2,1);
imshow(abs(H), [ ])
subplot(2,2,2);
imshow (abs (H1), [ ])

1213dac8ff5e0679d0d05f5cf19be2cf.png

(以图像的形式显示了H和H1的绝对值)

Step3:生成滤波后的图像

在空间域中,我们使用

gs=imfilter(double(f),h);

频域中,注意这个函数也需要自己定义,可以关注公众号获取源代码

gf=dftfilt(f,H1);

让他们显示在一起

subplot(2,3,4);
imshow(gs)
subplot(2,3,5);
imshow(gf)

c3bc347e0bea614e755d66ec458c4343.png

这就是分别进行两种滤波后的效果图, 图像中的灰色调是由于gs和gf存在负值,这会使得图像的平均值在使用命令imshow后增大。我们再进行操作

>> figure, imshow(abs(gs),[ ])>> figure, imshow (abs(gf), [])

b8a6aa9bfb1f201475691e56368a79e8.png

这是上面两幅图片的绝对值

通过c创建一幅阈值二值图像,我们可以更清楚的看到边缘

subplot(1,2,1);
imshow(abs(gs)>0.2*abs(max(gs(:))));
subplot(1,2,2);
imshow(abs(gf)>0.2*abs(max(gf(:))));

7ff832ffae99b83972f46775fa200aca.png

使用空间域滤波和频域滤波得到的图像对所有实用目的来说,都是相同的。下面我们通过计算它们的关来确证这一点:

>>d = abs(gs - gf) ;

最大差和最小差别分别为

>> max(d(:) )
ans =
5.4015e-012
>> min(d(:) )
ans =
0

图像滤波分为空间域滤波和频域滤波,空间滤波的内容见本人的另一篇文章

清逸:MATLAB中图像变换之线性空间滤波:

https://zhuanlan.zhihu.com/p/187517189

深入了解傅里叶变换请戳这里哦!!ae15bef73446b020fc4349e1d0a1523d.png

Heinrich:傅里叶分析之掐死教程(完整版):

https://zhuanlan.zhihu.com/p/19763358

关于MATLAB的学习:

大家可以关注我们的知乎专栏——数据可视化和数据分析中matlab的使用:

https://zhuanlan.zhihu.com/c_1131568134137692160

欢迎大家加入我们的MATLAB学习交流群:

953314432

这篇有点长,如果感觉对自己有用的话,可以点个赞,别老是偷偷的收藏哦。0f425b2d85322b5e622ba1a6b722dd69.png

▼往期精彩回顾▼图像处理中的代数运算及几何变换数据预处理——噪声值平滑处理数据预处理小结MATLAB中的非线性空间滤波基础414bd3c0ca1300943de03478ab2813b5.pngc7a5ec7be157bd8815c4a489c8cf9f67.pngc8627dc0e33772aa568d07a5159c986f.gif扫码关注我们更多精彩等待你发现出品:Asoul水云天课堂工作室6fc51d1f2ad05b9271611999e81bd2b0.png好看你就点点我4d4dbe053df6925d73691349cd3c9cea.pngc8627dc0e33772aa568d07a5159c986f.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/562397.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于jsp+mysql+Spring的SpringBoot招聘网站项目(完整源码+sql)主要实现了管理员登录,简历管理,问答管理,职位管理,用户管理,职位申请进度更新,查看简历

🍅 作者主页:Java李杨勇 🍅 简介:Java领域优质创作者🏆、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我,都给你】 🍅 欢迎点赞 👍 收藏 ⭐留言 &#x1f…

基于jsp+mysql+Spring的Springboot旅游网站管理系统设计和实现

🍅 作者主页:Java李杨勇 🍅 简介:Java领域优质创作者🏆、【java李杨勇】公号作者✌ 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 临近学期结束&#xff…

python 如何定义空字典_python字典中如何添加键值对

添加键值对首先定义一个空字典 1>>> dic{}直接对字典中不存在的key进行赋值来添加123>>> dic[name]zhangsan>>> dic{name: zhangsan}如果key或value都是变量也可以用这种方法12345>>> keyage>>> value30>>> dic[key]val…

基于javaweb(springboot)城市地名地址信息管理系统设计和实现

🍅 作者主页:Java李杨勇 🍅 简介:Java领域优质创作者🏆、【java李杨勇】公号作者✌ 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 临近学期结束&#xff…

欧氏空间内积定义_三、n维空间简介(6)矢量平移和测地线

矢量平移和测地线1、矢量的平移 我们在三维欧氏空间中(即在流形上讨论问题)时说过,矢量的加法应满足平行四边形法则。但是在矢量求和时,我们要先把两个矢量的端点平移到同一个位置。这是因为流形上两个不同的点有两个矢量空间,而矢量的加法只…

基于基于jsp+mysql+Spring+mybatis的SSM汽车保险理赔管理系统设计和实现

🍅 作者主页:Java李杨勇 🍅 简介:Java领域优质创作者🏆、【java李杨勇】公号作者✌ 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 临近学期结束&#xff…

取值方法_「EV3进阶课」制作小游戏:数据取值体系要统一(三)

不要着急,这部分教学内容要一步步来,如果我堆出一大堆文字,反而不利于大家接收,到时候又变成“照抄”了。为了大家更方便吸收,后面的课程内容,我将会把发课内容减少,发课频率提高一点。这样可能…

基于java SSM springboot学生信息管理系统设计和实现2.0

java毕业设计项目《100套》推荐 主要功能设计:登陆、学生管理、班级管理、教师管理、课程、选课管理、考勤管理、请假管理、成绩管理、统计、修改密码等 登录包含学生,教师,管理员 项目基于springboot2.1.x实现的管理系统:主要技…

基于java springboot+mybatis OA办公自动化系统设计和实现

🍅 作者主页:Java李杨勇 🍅 简介:Java领域优质创作者🏆、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我,都给你】 🍅文末获取源码联系方式📝 java sp…

基于java Springmvc+mybatis 电影院售票管理系统设计和实现以及文档

🍅 作者主页:Java李杨勇 🍅 简介:Java领域优质创作者🏆、【java李杨勇】公号作者✌ 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 临近学期结束&#xff…

基于java SSM校园兼职平台系统设计和实现

🍅 作者主页:Java李杨勇 🍅 简介:Java领域优质创作者🏆、【java李杨勇】公号作者✌ 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 临近学期结束&#xff…

基于Java SSM springboot健身管理系统设计和实现

🍅 作者主页:Java李杨勇 🍅 简介:Java领域优质创作者🏆、【java李杨勇】公号作者✌ 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 临近学期结束&#xff…

输入法画面_仙剑奇侠传X百度输入法联名纪念版皮肤今日上线

听说我们的键盘里藏着属于你的独家记忆值#仙剑25周年#之际百度输入法联名《仙剑奇侠传》 特别推出官方纪念版皮肤【仙剑廿五相守】让浓情回忆在指尖跳动当李逍遥、赵灵儿、林月如、阿奴齐聚你的键盘那些恍如昨日的画面是否又在你的心头浮现全新的Q版形象在保留人物原有特征的基…

基于java ssm springboot宠物用品商城系统

🍅 作者主页:Java李杨勇 🍅 简介:Java领域优质创作者🏆、【java李杨勇】公号作者✌ 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 临近学期结束&#xff…

椭圆极点极线性质_又见阿氏圆——适合作椭圆大题的小题

如下图:过椭圆内一点作的直线交椭圆于,两点.是椭圆上相异的两点,满足分别平分,,求外接圆半径的最小值.解:作的外角角平分线与的延长线交于,的外角平分线与的延长线交于,根据内外角平…

基于javaweb jsp+servlet学生宿舍管理系统

🍅 作者主页:Java李杨勇 🍅 简介:Java领域优质创作者🏆、【java李杨勇】公号作者✌ 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 临近学期结束&#xff…

先天性脑部发育异常_儿童脑发育不良的3大“诱因”,若孩子出现这5种异常,要警惕...

儿童脑发育不良主要是指脑组织减少,脑神经发育不健全,如果不及时治疗,会给患儿的正常生活带来严重影响。所以出现脑发育不良的症状时必须要及时找出病因,接受规范化的治疗,与此同时还应该注重对患儿的护理,…

基于Java SSM springboot+VUE+redis实现的前后端分类版网上商城项目

🍅 作者主页:Java李杨勇 🍅 简介:Java领域优质创作者🏆、【java李杨勇】公号作者✌ 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 临近学期结束&#xff…

@value 注入静态属性_TP6依赖注入是如何实现的

TP6依赖注入是如何实现的先看下app/provider容器文件,此文件会在thinkAPP实例化的时候直接从新绑定类到的容器上。复制原有容器中的类可以先看下thinkAPP 构造方法中的处理逻辑/** * 架构方法 * access public * param string $rootPath 应用根目录 */ public f…

信捷触摸屏c语言脚本_信捷触摸屏TG系列产品型号说明及功能介绍

产品介绍全新外观设计,比普通款更薄1677万色,画质细腻无痕,显示效果媲美液晶显示器下载、启动、运行,三位一体的超高速响应支持C语言脚本功能,运算、自由协议编写、绘图,提高编程自由度支持BMP、JPEG格式图…