博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
计算机视觉---2.2---频率与傅里叶变换
阅读量:4570 次
发布时间:2019-06-08

本文共 1424 字,大约阅读时间需要 4 分钟。

傅里叶变换的意义

傅里叶变换的意义在于提取一张图片的频率成分,理论推导见笔记本。

映射关系

其映射关系可以大致总结成

f(x,y)>F(u,v)

其中图片可以看作是一个矩阵,矩阵里的元素是灰度值。而矩阵又可以看作是函数的离散形式。(就像向量可以看作一元函数离散一样,见笔记本)。那么f(x,y)就可以认为是矩阵的函数形式。f(x,y)就相当于一张图片,x,y是像素坐标,f(x,y)是像素灰度值。

F(u,v)是这张图片的某个函数。虽然也可以表示为图片,但是它的意义并不是图片而是一种分析数据。

具体形式

傅里叶变换的具体形式是

F(u,v)=f(x,y)e2πi(ux+vy)dxdy
e2πi(ux+vy)=cos(2π(ux+vy))+isin(2π(ux+vy))
  1. 两个函数的乘积后积分。对应的离散形式就是两个函数在某点的值相乘,求和。
  2. 这是向量的乘法推广,向量的乘法代表在某个方向的分量投影,这里函数的乘法也是一样。
  3. 如果u,v是确定的,那么可以认为这是f(x,y)在特定正弦函数和特定余弦函数上的分量。
  4. 一连串的正弦函数和余弦函数构成了无穷维空间的基。
  5. 同时由于有无穷多的基,所以u,v是连续变化的。
  6. 傅里叶变换结果F(u,v)表示在某特定基(cos(u,v),sin(u,v))上函数的投影值。如果把(u,v)看作是一个平面,那么可以找到u,v坐标系下,函数在特定基上的投影值。
  7. 傅里叶变换结果对图像的旋转是敏感的。同一张图旋转后其傅里叶变换结果不同。
  8. 实际上,是用二维平面各个方向上的正弦余弦函数来对f(x,y)进行重构,u,v指定了方向,u2+v2 指定了频率的大小。

如图所示

这里写图片描述

左图表示的是(u,v)=(0,0.4),傅里叶变换实数部分所对应的图片

中图表示的是(u,v)=(1,2),傅里叶变换实数部分所对应的图片
右图表示的是(u,v)=(10,-5),傅里叶变换实数部分所对应的图片

从图中可以看出,纹理在某个方向出现的频率升高,那么对应点傅里叶变换的数值也会增大。如果图片旋转,频域图也会变化。

matlab

A=imread('window.jpg'); %载入图片A=rgb2gray(A);B=fftshift(fft2(A)); % 进行傅立叶变换,并且移位subplot(231)imshow(A);title('原始图像');subplot(232)imshow(abs(B),[ ]);title('原始频谱图');subplot(233)imshow(log(abs(B)),[]);title('取对数后的频谱图');subplot(234)imshow(angle(B),[ ]);title('相位图');subplot(235)imshow(real(B),[ ]);title('实部图');subplot(236)imshow(imag(B),[ ]);title('虚部图');%代码转自网络

傅里叶变换结果

傅里叶变换结果

这里值得注意的是如果不先变化成灰度图,傅里叶变换的结果是一片空白。
如图这里写图片描述
没转成灰度图。

同时imshow里必须加上[]

否则会导致频谱图一篇空白

最后必须对频谱取对数再作图,否则会导致一片空白

版权声明:本文为博主原创文章,未经博主允许不得转载。

 

转载于:https://www.cnblogs.com/ironstark/p/4892627.html

你可能感兴趣的文章
Java创建线程的细节分析
查看>>
python语法_深浅拷贝
查看>>
使用CCleaner卸载chrome
查看>>
typeof和GetType的区别
查看>>
xtraTabbedMdiManager控件切换时控件不更新的问题
查看>>
为易信正名
查看>>
debian8.4 ibus中文输入法
查看>>
如何使用dos命令查看MySQL当前使用的数据库?
查看>>
《JAVA程序设计》实训第一天——《猜猜看》游戏
查看>>
普通用户 crontab 任务不运行
查看>>
数据缓存方案
查看>>
OpenCV2马拉松第14圈——边缘检測(Sobel,prewitt,roberts)
查看>>
P1896 [SCOI2005]互不侵犯
查看>>
ESP定律手工脱壳步骤
查看>>
wex5 教程 之 图文讲解 登陆,注册,页面跳转
查看>>
问题7:JavaScript 常用正则示例
查看>>
xampp 虚拟机配置
查看>>
第五次实验
查看>>
从统计学角度来看深度学习(1):递归广义线性模型
查看>>
nginx发布Asp.net程序
查看>>