赞
踩
请问图像的傅里叶变换里面,怎么理解高频和低频呢?是u,v大的值对应高频么?傅里叶变换以后得到的幅度谱为什么能反映灰度的变化情况呢?看了很多资料,一直缺乏直观上的理解啊,哪位大神能给讲一下?谢谢
谷歌软件工程师;住过纽约,中部,西雅图,硅谷;
作者:烈日烤鱼
链接:https://www.zhihu.com/question/29246532/answer/564557264
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
下面的例子可能不严谨,但绝对很直观.
比如有如下数组
{1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10}
和
{1, 2, 3, 4, 5, 4, 3, 2, 1, 2, 3, 4, 5, 4, 3, 2, 1,}
你直观的理解下,哪个数组的"频率"大点?
你可以用纵坐标代表数组值,横坐标代表数组index描点看看,显然是第一个数组的频率高.
所以对于数组来说,数字之间变化剧烈,代表高频,柔和代表低频.
同理,对于图像来说,那就是灰度变化快的是高频,慢的是低频.比如一个物体的边缘,就是高频信号,物体内部,就是低频.
而傅立叶变换无非是告诉你这副图像上XXX频率的信号有多少多少, YYY的频率有多少多少.
那换句话说就是,图像的傅立叶变换可以让你直观的看到这幅图总体上"剧烈"的变化有多少,"柔和"的变化有多少.
一副整体很模糊的图,傅立叶变换后显示的低频分量就很多
一副整体灰度变化很剧烈的图,傅立叶变换后显示的高频分量就很多
同理,如果你在频域上将高频分量去掉,再反变换回去,那图片就会变的模糊.
将评论区的二维情况的解释也搬上来吧:
一维的频谱横坐标就是频率,f(x)= y的意思就是图像上的x频率有y这么多。二维没有所谓横坐标概念,他是u和v两个坐标轴。f(u,v)= y的意思就是(u,v)这个频率的大小为y。那(u,v)又是个啥频率呢?你可以想象下,一个二维的丘陵地区,你沿不同方向看,它的频率可以不一样。比如沿着山脊走,就很平坦,频率很低,但垂直山脊走那就是直接跳崖,频率很高。所以你想表示频率,得至少用到两个变量--比如(100,10)就表示横向看频率为100,但纵向看频率只有10的频率。也就是一副纵向走向的山脊的图形。f(100,10)= y就是说图像上这种纵向山脊的分量有y这么多。同理, f(10,100)=5y就是说横向山脊的分量是纵向山脊的5倍那么多。所以二维图像傅里叶可以让你看到各个方向上频率的多少
作者:哒哒
链接:https://www.zhihu.com/question/29246532/answer/1035400862
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
首先默认观看本回答的知友们都了解傅里叶变换的基础知识!
一维信号可以分解为多个正弦信号;二维信号(图像)也能够分解为多个正弦分量(条纹分量)
对于一幅M×N的图像,其傅里叶变换公式如下:
这里我们给一幅1200×1200的图像:
1、先来讨论一下指数部分
指数部分可以分解为实部(余弦函数)、虚部(正弦函数)
1)假设u=10,v=0,余弦函数和正弦函数的自变量为x,y(如下图:横轴坐标为x,纵轴坐标为y)。可以发现条纹方向是横向的。
正弦图
余弦图
若u=0,v=10,条纹方向是纵向的
正弦图
余弦图
若u=10,v=10:条纹方向为45°方向
正弦图
余弦图
若u=10,v=17(≈10×根号3):条纹方向约为60°
正弦图
余弦图
这里我们可以发现,条纹的方向是和向量(u/M, v/N)的方向平行的,文中举的例子因为M=N=1200,所以和向量(u,v)平行。
2)现在我们假设u=0,v=2, 5, 10
v=2
v=5
v=10
可以发现:v为多少,就有多少道条纹;事实上条纹频率和 u+v成正比 。
2、回到傅里叶变换公式部分
我们将公式中指数部分分解:
实部就可以看成:原图和余弦图的卷积,得到的值我们假设为 R(u, v)
虚部可以看成:原图和正弦图的卷积,得到的值我们假设为 I(u, v)
仔细观察能够发现:傅里叶变换公式和空间域的滤波公式十分接近,只不过是滤波模板的尺寸和原图一样大了而已,而u,v决定了模板的条纹形状。
3、幅值和相位
幅值表征了该条纹分量的幅度;相位表征了该条纹分量相对于原点的偏移量。确定u,v以后,没有偏移量的条纹(即相位为0的条纹分量)就是当前u,v确定的正弦条纹;若存在偏移量,就是正弦条纹沿条纹的法线方向偏移相应大小的偏移量(也可以理解成偏移“
”个周期)。
不同的条纹分量的幅值:
不同的条纹分量的相位:
为什么可以这么计算,这个证明过程比较复杂,为了让大家直观的感受一下,这里举一个一维信号的例子:
假设存在一正弦函数 ,假设我们知道该正弦函数的频率,但不知道该正弦函数的相位,为了得到该函数的相位,可以用正弦函数
与之进行相关计算:
通过相关函数的最大值,我们可以确定该正弦函数的相位值为
除了这种方法能够得到相位值,还有没有别的方法呢?答案是有的!话不多说,直接上matlab程序,大家看程序理解吧!
- P=0.75*pi; %偏移相位
- B=0:0.00001:6;
- T1=sin(2*pi*B); %正弦函数
- T2=cos(2*pi*(B)); %余弦函数
- T3=sin(2*pi*B+P); %添加偏移相位的函数
- C1=sum(T3.*T3);
- C2=sqrt((sum(T1.*T3))^2+(sum(T2.*T3))^2);
- disp(C1);disp(C2);
- disp(sum(T1.*T3)/sum(T2.*T3))
- disp(tan(P))
-
- >>3.0000e+05
- 3.0000e+05
- -1.0000
- -1.0000
可以看出不仅相位,幅值最终也相同。
转载:https://www.zhihu.com/question/29246532?utm_id=0
图像傅里叶变换的频率怎么理解?
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。