精华内容
下载资源
问答
  • 基于傅里叶图像分析的机织物密度检测,潘如如,高卫东,本文提出一种基于傅里叶变换方法的机织物密度自动检测方法,以解决传统人工检测织物密度的耗时费力问题。文中首先对涉及的傅里叶
  • 国外大牛编写的程序,形象生动地说明了图像在频域内的分解与合成
  • 1 傅里叶级数到傅里叶变换公式推导 1.1傅里叶级数 傅里叶级数:周期信号都可以分解为有限或无限个正弦波或余弦波的叠加,且这些波的频率都是原始信号频率的整数倍。用傅里叶级数或变换表示的函数特征完全可以通过...

    1 傅里叶级数到傅里叶变换公式推导

    1.1傅里叶级数

    在这里插入图片描述在这里插入图片描述
    傅里叶级数:周期信号都可以分解为有限或无限个正弦波或余弦波的叠加,且这些波的频率都是原始信号频率的整数倍。用傅里叶级数或变换表示的函数特征完全可以通过傅里叶反变换来重建,且不会丢失任何信息。
    在这里插入图片描述
    在详细的公式推导之前,我想先分析一下频域和时域之间的关系:
    在这里插入图片描述

    最前面黑色的线就是所有正弦波叠加而成的总和,也就是越来越接近矩形波的那个图形。而后面依不同颜色排列而成的正弦波就是组合为矩形波的各个分量。这些正弦波按照频率从低到高从前向后排列开来,而每一个波的振幅都是不同的。一定有细心的读者发现了,每两个正弦波之间都还有一条直线,那并不是分割线,而是振幅为0的正弦波!也就是说,为了组成特殊的曲线,有些正弦波成分是不需要的。
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
    我们眼中的世界就像皮影戏的大幕布,幕布的后面有无数的齿轮,大齿轮带动小齿轮,小齿轮再带动更小的。在最外面的小齿轮上有一个小人——那就是我们自己。我们只看到这个小人毫无规律的在幕布前表演,却无法预测他下一步会去哪。而幕布后面的齿轮却永远一直那样不停的旋转,永不停歇。

    1.2傅里叶级数的公式推导

    通过傅里叶级数的定义,一个周期函数可以表示为
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    理解:将原始信号和该信号做乘求积分,相当于原始信号在该频率下的三角函数的投影,相当于求出该信号下的相应,求积分相当于求原始信号一个周期内的面积,除以周期得到的是该信号的幅值。 相当于多维信号下求原始信号在该维下的投影。

    1.3傅里叶级数的指数形式

    复数:
    复数最直观的物理意义就是旋转,为了有效区别X,Y轴,对Y轴进行标识就是j。当数字4乘以-1时,相当于在数轴上旋转了180°,j=√(−1),那么4*j就是旋转了90度。
    在这里插入图片描述
    泰勒级数:
    泰勒级数就是用多项式就是用多项式函数去逼近光滑函数。
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
    欧拉公式:
    在这里插入图片描述
    在这里插入图片描述
    实数轴上为余弦函数,虚数轴上做正弦函数。
    现代物理学告诉我们,宏观宇宙的构成本质是旋转的,带有圆周运动和自旋性;微观世界也是旋转的,也带有圆周运动和自旋性,而欧拉公式描述的核心正是旋转与频率,因此,在物理学定量意义上讲,称它是宇宙第一公式一点也不为过!
    欧拉公式将指数函数的定义域扩大到了复数域,建立了三角函数和指数函数的关系,被誉为“数学中的天桥”
    在这里插入图片描述
    得到傅里叶级数的指数形式:
    在这里插入图片描述
    在这里插入图片描述

    1.4傅里叶变换

    在这里插入图片描述
    黎曼和表达式的实质是,求取面积时,将其分段,乘以步长,面积累积为函数的面积。另一层意思,如何将离散的变为连续的。
    在这里插入图片描述
    将离散变为连续需要步长趋近于0.这里就是周期趋近于无穷大。
    在这里插入图片描述
    然后将Wx替换为2πu则
    在这里插入图片描述
    很多时候信号不是周期的,当我们把周期看成无穷大时,那么离散的傅立叶级数也就成为了连续的傅立叶变换了,傅里叶变换则是将一个时域非周期的连续信号,转换为一个在频域非周期的连续信号。傅里叶级数中的两个频率间隔为1/T,当周期无穷大的时候,两个频率之间无间隔,也就变为连续图像。
    在这里插入图片描述
    在这里插入图片描述
    傅里叶反变换即为对某时刻所有的频率在该时刻的数值进行积分。即为有图中的频率方向求积分。由傅里叶级数可知,对应幅值的频率分量的乘积即对所有频率进行积分。
    有了欧拉公式的帮助,我们便知道:正弦波的叠加,也可以理解为螺旋线的叠加在实数空间的投影。
    在这里插入图片描述
    在这里插入图片描述

    1.5离散傅里叶变换

    在这里插入图片描述

    1.6二维傅里叶变换

    在这里插入图片描述
    在这里插入图片描述

    2图像傅里叶变换的性质

    2.1 平移性

    在这里插入图片描述
    在这里插入图片描述

    2.2分配律

    在这里插入图片描述

    2.3图像缩放

    在这里插入图片描述

    2.4 图像旋转

    在这里插入图片描述
    在这里插入图片描述

    2.5 周期性和共轭对称性

    在这里插入图片描述
    DFT的周期性:时时刻刻都要记住,对于而言,他的空域和频域始终都是沿着X和Y方向无限周期拓展的。
    在这里插入图片描述

    2.6 分离性

    在这里插入图片描述

    2.7 平均值

    在这里插入图片描述

    2.8 卷积理论

    在这里插入图片描述

    2.9 相关性理论

    在这里插入图片描述

    3. 快速傅里叶变换(FFT)

    采用快速傅里叶变换(FFT)算法能使计算机计算离散傅里叶变换所需要的乘法次数大为减少,特别是被变换的抽样点数N越多,FFT算法计算量的节省就越显著。函数或信号可以透过一对数学的运算子在时域及频域之间转换。和傅里叶变换作用一样。

    3.1 为什么需要快速傅里叶变换?

    人们想让计算机能处理信号 但由于信号都是连续的、无限的,计算机不能处理,于是就有了傅里叶级数、傅里叶变换,将信号由时域变到频域,把一个信号变为有很多个不同频率不同幅度的正弦信号组成,这样计算机就能处理了,但又由于傅里叶变换中要用到卷积计算,计算量很大,计算机也算不过来,于是就有了快速傅里叶变换,大大降低了运算量,使得让计算机处理信号成为可能。快速傅里叶变换是傅里叶变换的快速算法而已,主要是能减少运算量和存储开销,对于硬件实现特别有利。
    在这里插入图片描述

    1 对u的M个值中的每一个都需进行M次复数乘法(将f(x)与 e− j2πux / M 相乘)和M-1次加法,即复数乘法和加法的次数都正比于M平方
    2 快速傅里叶变换(FFT)则只需要Mlog2M次运算
    FFT算法与原始变换算法的计算量之比是log2M/M,如M=1024≈10的3次方,则原始变换算法需要10的6次方计算,而FFT需 要10的4次计算,FFT与原始变换算法之比是1:100
    3 只考虑一维的情况,根据傅里叶变换的分离性可知,二维傅里叶变换可由连续2次一维傅里叶变换得到

    3.2 FFT算法基本思想

    FFT算法基于一个叫做逐次加倍的方法。通过推导将原始傅里叶转换成两个递推公式:
    在这里插入图片描述

    3.3 FFT公式推导

    假设M的形式是
    M = 2^n, n为正整数。因此,M可以表示为:M = 2K 。将M=2K带入上式:

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    特性:

    一个M个点的变换,能够通过将原始表达式分成两个部分来计算
    通过计算两个(M/2)个点的变换。得Feven(u)和 Fodd(u)
    奇部与偶部之和得到F(u)的前(M/2)个值
    奇部与偶部之差得到F(u)的后(M/2)个值。且不需要额外的变换计算

    3.4 归纳快速傅立叶变换的思想

    (1)通过计算两个单点的DFT,来计算两个点的DFT, (2)通过计算两个双点的DFT,来计算四个点的DFT,…,以此类推
    (3)对于任何N=2m的DFT的计算,通过计算两个N/2点的DFT,来计算N个点的DFT

    4.0 傅里叶变换的讨论

    频域(frequency domain)是指在对函数或信号进行分析时,分析其和频率有关部份,而不是和时间有关的部份,和时域一词相对。
    时域是描述数学函数或物理信号对时间的关系。例如一个信号的时域波形可以表达信号随着时间的变化。若考虑离散时间,时域中的函数或信号,在各个离散时间点的数值均为已知。若考虑连续时间,则函数或信号在任意时间的数值均为已知。在研究时域的信号时,常会用示波器将信号转换为其时域的波形。
    两者相互间的变换时域(信号对时间的函数)和频域(信号对频率的函数)的变换在数学上是通过积分变换实现。对周期信号可以直接使用傅立叶变换,对非周期信号则要进行周期扩展,使用拉普拉斯变换。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    傅立叶变换以前,图像(未压缩的位图)是由对在连续空间(现实空间)上的采样得到一系列点的集合,我们习惯用一个二维矩阵表示空间上各点,则图像可由z=f(x,y)来表示。由于空间是三维的,图像是二维的,因此空间中物体在另一个维度上的关系就由梯度来表示,这样我们可以通过观察图像得知物体在三维空间中的对应关系。为什么要提梯度?因为实际上对图像进行二维傅立叶变换得到频谱图,就是图像梯度的分布图,当然频谱图上的各点与图像上各点并不存在一一对应的关系,即使在不移频的情况下也是没有。傅立叶频谱图上我们看到的明暗不一的亮点,实际上图像上某一点与邻域点灰度值差异的强弱,即梯度的大小,也即该点的频率的大小(差异/梯度越大,频率越高,能量越低,在频谱图上就越 暗。差异/梯度越小,频率越低,能量越高,在频谱图上就越 亮。换句话说,频率谱上越亮能量越高,频率越低,图像差异越小/平缓)。一般来讲,梯度大则该点的亮度强,否则该点亮度弱。频谱图,也叫功率图。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    参考:
    1 https://zhuanlan.zhihu.com/p/19763358
    2 http://k.sina.com.cn/article_6385529085_17c9b70fd001006gjp.html?from=science
    3 https://blog.csdn.net/qq_33208851/article/details/94834614
    4 https://zhuanlan.zhihu.com/p/41455378

    展开全文
  • 图像处理--傅里叶图像及傅里叶变换

    千次阅读 2013-11-21 17:39:07
    二维离散傅里叶变换的旋转性 源码如下: >> clear >> %构造原始图像 I=zeros(256,256); I(28:228,108:148)=1; subplot(2,2,1),imshow(I); %求原始图像的傅里叶频谱 J=fft2(I); F=abs(J); J1=fftshift(F); ...

    二维离散傅里叶变换的旋转性
    源码如下:
    >> clear
    >> %构造原始图像
     I=zeros(256,256);
    I(28:228,108:148)=1;
    subplot(2,2,1),imshow(I);
     
     
    %求原始图像的傅里叶频谱
    J=fft2(I);
    F=abs(J);
    J1=fftshift(F);
    subplot(2,2,2),imshow(J1,[5,50]);
     
     
     %对原始图像进行旋转
     K=imrotate(I,315,'bilinear','crop');
    subplot(2,2,3),imshow(K);
     
     
     %求旋转后图像的傅里叶频谱
    K1=fft2(K);
    F=abs(K1);
    K2=fftshift(F);
    subplot(2,2,4),imshow(K2,[5,50]);
     
     
    %加标题,可以加在subplot之后。
    subplot(2,2,1),title('原始图像');
    subplot(2,2,2),title('原图像的傅里叶频谱');
    subplot(2,2,3),title('旋转后的图像');
    subplot(2,2,4),title('旋转后图像的傅里叶频谱');
    代码结果图像:



    >> clear;
    >> I=imread('C:\Users\hling\Desktop\1410575439.png');
    >> figure(1)
    >> imshow(real(I));
    >> I=I(:,:,3);
    >> fftI=fft2(I);
    >> sfftI=fftshift(fftI);
    >> RRfdp=real(sfftI);
    >> IIfdp=imag(sfftI);%取其实部和虚部
    >> a=sqrt(RRfdp.^2+IIfdp.^2);
    >> a=(a-min(min(a)))/(max(max(a))-min(min(a)))*225;%归一化
    >> subplot(2,2,1),imshow(real(a));
    >> b=angle(fftI);
    >> subplot(2,2,2),imshow(real(b));
    >> theta=30;
    >> RR1=a*cos(theta);
    >> II1=a*sin(theta);
    >> fft
    Error using fft
    Not enough input arguments.
     
    >> fftI1=RR1+i.*II1;
    >> C=ifft2(fftI1)*255;
    >> subplot(2,2,3),imshow(real(C));
    >> 
    >> mm=150;
    >> RR2=mm*cos(angle(fftI));
    >> II2=mm*sin(angle(fftI));
    >> fftI2=RR2+i.*II2;
    >> D=ifft2(fftI2);
    >> subplot(2,2,4),imshow(real(D));
    >> subplot(2,2,1),title('幅值谱');
    >> subplot(2,2,2),title('相位谱');
    >> subplot(2,2,3),title('幅值谱重构图像');
    >> subplot(2,2,4),title('相位谱重构图像');
    


    展开全文
  • 图像的傅里叶变换

    2019-01-10 22:04:46
    今天我想讲的是OpenCv中如何对傅里叶图像进行变换,生成频谱。 先看如何生成一幅图像的频谱: 源码: #include "QtGuiApplication1.h" //#define Ui #ifndef Ui #include <QFileInfo>...

    图像的傅里叶变换

    傅里叶变换大家想必早就了解了,网上资料也很多,如何推导有何意义都说的很明白了,在这里就不作赘述。今天我想讲的是OpenCv中如何对傅里叶图像进行变换,生成频谱图。
    先看如何生成一幅图像的频谱图:
    源码:

    #include "QtGuiApplication1.h"
    
    //#define Ui
    #ifndef Ui
    
    #include <QFileInfo>
    #include <QDir>
    #include <opencv2\opencv.hpp>
    using namespace cv;
    
    #else
    
    #include <QtWidgets/QApplication>
    
    #endif
    
    int main(int argc, char *argv[])
    {
    	QApplication a(argc, argv);
    
    #ifdef Ui
    	QtGuiApplication1 w;
    	w.show();
    	return a.exec();
    #else
    	QString path = QFileInfo(QCoreApplication::applicationDirPath(), "../../../").absoluteDir().absolutePath() + "/imgs/";
    
    	//【1】以灰度模式读取原始图像并显示
    	Mat srcImage = imread(path.toStdString() + "Fig0424(a)(rectangle).tif", IMREAD_GRAYSCALE);
    	if (!srcImage.data) { printf("读取图片错误,请确定目录下是否有imread函数指定图片存在~! \n"); return false; }
    	imshow("原始图像", srcImage);
    
    
    	//【2】将输入图像延扩到最佳的尺寸,边界用0补充
    	int m = getOptimalDFTSize(srcImage.rows);
    	int n = getOptimalDFTSize(srcImage.cols);
    	//将添加的像素初始化为0.
    	Mat padded;
    	copyMakeBorder(srcImage, padded, 0, m - srcImage.rows, 0, n - srcImage.cols, BORDER_CONSTANT, Scalar::all(0));
    
    	//【3】为傅立叶变换的结果(实部和虚部)分配存储空间。
    	//将planes数组组合合并成一个多通道的数组complexI
    	Mat planes[] = { Mat_<float>(padded), Mat::zeros(padded.size(), CV_32F) };
    	Mat complexI;
    	merge(planes, 2, complexI);
    
    	//【4】进行就地离散傅里叶变换
    	dft(complexI, complexI);
    
    	//【5】将复数转换为幅值,即=> log(1 + sqrt(Re(DFT(I))^2 + Im(DFT(I))^2))
    	split(complexI, planes); // 将多通道数组complexI分离成几个单通道数组,planes[0] = Re(DFT(I), planes[1] = Im(DFT(I))
    	magnitude(planes[0], planes[1], planes[0]);// planes[0] = magnitude  
    	Mat magnitudeImage = planes[0];
    
    	//【6】进行对数尺度(logarithmic scale)缩放
    	magnitudeImage += Scalar::all(1);
    	log(magnitudeImage, magnitudeImage);//求自然对数
    
    	//【7】剪切和重分布幅度图象限
    	//若有奇数行或奇数列,进行频谱裁剪  
    	magnitudeImage = magnitudeImage(Rect(0, 0, magnitudeImage.cols & (~1), magnitudeImage.rows & (~1)));
    	//重新排列傅立叶图像中的象限,使得原点位于图像中心  
    	int cx = magnitudeImage.cols / 2;
    	int cy = magnitudeImage.rows / 2;
    	Mat q0(magnitudeImage, Rect(0, 0, cx, cy));   // ROI区域的左上
    	Mat q1(magnitudeImage, Rect(cx, 0, cx, cy));  // ROI区域的右上
    	Mat q2(magnitudeImage, Rect(0, cy, cx, cy));  // ROI区域的左下
    	Mat q3(magnitudeImage, Rect(cx, cy, cx, cy)); // ROI区域的右下
    												  //交换象限(左上与右下进行交换)
    	Mat tmp;
    	q0.copyTo(tmp);
    	q3.copyTo(q0);
    	tmp.copyTo(q3);
    	//交换象限(右上与左下进行交换)
    	q1.copyTo(tmp);
    	q2.copyTo(q1);
    	tmp.copyTo(q2);
    
    	//【8】归一化,0到255
    	normalize(magnitudeImage, magnitudeImage, 0, 255, NORM_MINMAX);
    	magnitudeImage.convertTo(magnitudeImage, CV_8UC1);
    
    	//【9】显示效果图
    	imshow("频谱幅值", magnitudeImage);
    	waitKey();
    
    	return 0;
    #endif
    	
    }
    

    原图:
    在这里插入图片描述
    效果图:
    在这里插入图片描述
    原图像 与 其傅里叶变换的 对应关系:
    在这里插入图片描述
    二维的FFT坐标图中,有模、方向 和 亮度 三个变量
    1、模表示的是频率分量的大小,就是与中心点的距离,频率越大离远点越近;
    2、方向则与原图中的灰度值变化方向有垂直关系;
    3、亮度就是该频率信号的幅值大小

    展开全文
  • 图像傅里叶变换

    2019-01-25 18:09:25
    图像傅里叶变换
                   

    冈萨雷斯版<图像处理>里面的解释非常形象:一个恰当的比喻是将傅里叶变换比作一个玻璃棱镜。棱镜是可以将光分解为不同颜色的物理仪器,每个成分的颜色由波长(或频率)来决定。傅里叶变换可以看作是数学上的棱镜,将函数基于频率分解为不同的成分。当我们考虑光时,讨论它的光谱或频率谱。同样, 傅立叶变换使我们能通过频率成分来分析一个函数。


    Fourier theory讲的就是:任何信(如图像信号)都可以表示成一系列正弦信号的叠加,在图像领域就是将图像brightness variation 作为正弦变量。比如下图的正弦模式可在单傅里叶中由三个分量编码:频率f、幅值A、相位γ 这三个value可以描述正弦图像中的所有信息。

    1.frequency

      


    frequency在空间域上可由亮度调节,例如左图的frequency比右图的frequency低……


    2.幅值magnitude(amplitude

    sin函数的幅值用于描述对比度,或者说是图像中最明和最暗的峰值之间的差。(一个负幅值表示一个对比逆转,即明暗交换。)

    3.相位表示相对于原始波形,这个波形的偏移量(左or右)。

    =================================================================

    一个傅里叶变换编码是一系列正弦曲线的编码,他们的频率从0开始(即没有调整,相位为0,平均亮度处),到尼奎斯特频率(即数字图像中可被编码的最高频率,它和像素大小、resolution有关)。傅里叶变换同时将图像中所有频率进行编码:一个只包含一个频率f1的信号在频谱上横坐标f为f1的点处绘制一个单峰值,峰值高度等于对应的振幅amplitude,或者正弦曲线信号的高度。如下图所示。


    DC term直流信号对应于频率为0的点,表示整幅图像的平均亮度,如果直流信号DC=0就表示整幅图像平均亮度的像素点个数=0,可推出 灰度图中,正弦曲线在正负值之间交替变化,但是由于灰度图中没有负值,所以所有的真实图像都有一个正的DC term,如上图所示。

    出于某些数学分析原因,我们经常把傅里叶变换用mirror-image表示,在原点的的两端,frequency都是增加的方向,具有相同的幅值。


    上面讲的都是一维信号,一个二维傅里叶变换是一维傅里叶变换在每一个行扫描线和列扫描线上的傅里叶变换的叠加。


    傅里叶谱图上的每一个像素点都代表一个频率值,幅值由像素点亮度变码而得。最中心的亮点是指直流分量,傅里叶谱图中越亮的点,对应于灰度图中对比越强烈(对比度越大)的点。

    由于每一列扫描线上没有变化,所以相应的fourier spectrum上行向量为0, 每一行扫描线上有contrast,所以有频率幅值。




    这里频率比上面的小,相应的亮点比上副图也集中。




    图像傅立叶变换的物理意义

    傅里叶提出任何周期函数都可以表示为不同频率的正弦和/或余弦和的形式,每个正弦和/或余弦乘以不同的系数(傅里叶级数)。图像的频率是表征图像中灰度变化剧烈程度的指标是灰度在平面空间上的梯度.在噪声点和图像边缘处的频率为高频。

    傅立叶变换在实际中有非常明显的物理意义,设f是一个能量有限的模拟信号,则其傅立叶变换就表示f的谱。从纯粹的数学意义上看,傅立叶变换是将一个函数转换为一系列周期函数来处理的。从物理效果看,傅立叶变换是将图像从空间域转换到频率域,其逆变换是将图像从频率域转换到空间域。换句话说,傅立叶变换的物理意义是将图像的灰度分布函数变换为图像的频率分布函数,傅立叶逆变换是将图像的频率分布函数变换为灰度分布函数.

    傅立叶变换以前,图像(未压缩的位图)是由对在连续空间(现实空间)上的采样得到一系列点的集合,我们习惯用一个二维矩阵表示空间上各点,则图像可由z=f(x,y)来表示。由于空间是三维的,图像是二维的,因此空间中物体在另一个维度上的关系就由梯度来表示,这样我们可以通过观察图像得知物体在三维空间中的对应关系。为什么要提梯度?因为实际上对图像进行二维傅立叶变换得到频谱图,就是图像梯度的分布图,当然频谱图上的各点与图像上各点并不存在一一对应的关系,即使在不移频的情况下也是没有。傅立叶频谱图上我们看到的明暗不一的亮点,实际上图像上某一点与邻域点差异的强弱,即梯度的大小,也即该点的频率的大小(可以这么理解,图像中的低频部分指低梯度的点,高频部分相反)。一般来讲,梯度大则该点的亮度强,否则该点亮度弱。这样通过观察傅立叶变换后的频谱图,也叫功率图,我们首先就可以看出,图像的能量分布,如果频谱图中暗的点数更多,那么实际图像是比较柔和的(因为各点与邻域差异都不大,梯度相对较小),反之,如果频谱图中亮的点数多,那么实际图像一定是尖锐的,边界分明且边界两边像素差异较大的。对频谱移频到原点以后,可以看出图像的频率分布是以原点为圆心,对称分布的。将频谱移频到圆心除了可以清晰地看出图像频率分布以外,还有一个好处,它可以分离出有周期性规律的干扰信号,比如正弦干扰,一副带有正弦干扰,移频到原点的频谱图上可以看出除了中心以外还存在以某一点为中心,对称分布的亮点集合,这个集合就是干扰噪音产生的,这时可以很直观的通过在该位置放置带阻滤波器消除干扰.






    图像是两个参数的函数,通过一组正交函数的线性组合可以将其分解,而傅里叶就是通过谐波函数来分解的。而对于离散傅里叶变换,傅里叶变换的条件是存在的。

    傅里叶变换进行图像处理有几个特点

    1. 直流成分F(0,0)等于图像的平均值;

    2. 能量频谱|F(u,v)|^2完全对称于原点;其中F=PfQ, f表示原图,P和Q都是对称的实正交矩阵,这个公式表示傅里叶变换就是个正交矩阵的正交变换

    3.图像f平移(a,b)后,F只有exp[-2pij(au/M+bv/M)]的相位变化,能量频谱不发生变化。

    4. 图像f自乘平均等于能量频谱的总和,f的分散等于能量频谱中除直流成分后的总和。

    5.图像f(x,y)和g(x,y)的卷积h(x,y)=f(x,y)*g(x,y)的傅里叶变换H(u,v)等于f(x,y)和g(x,y)各自的傅里叶变换的乘积。


    图像中的每个点通过傅里叶变换都成了谐波函数的组合,也就有了频率,这个频率则是在这一点上所有产生这个灰度的频率之和,也就是说傅里叶变换可以将这些频率分开来。当想除去图像背景时,只要去掉背景的频率就可以了。

     

    在进行傅里叶变换时,实际上在某一特定的频率下,计算每个图像位置上的乘积。什么乘积呢,就是f(x,y)exp[-j2pi(ux+vy)],然后计算下一个频率。这样就得到了频率函数。

    也就是说,我们看到傅里叶变换的每一项(对每对频率u,v,F(u,v)的值)是由f(x)函数所有值的和组成。f(x)的值与各种频率的正弦值和余弦值相乘。因此,频率u, v决定了变换的频率成分(x, y也作用于频率,但是它们相加,对频率有相同的贡献)。

     

    通常在进行傅里叶变换之前用(-1)^(x+y)乘以输入的图像函数,这样就可以将傅里叶变换的原点F(0,0)移到(M/2,N/2)上。

     

    每个F(u,v)项包含了被指数修正的f(x,y)的所有值,因而一般不可能建立图像特定分量和其变换之间的联系。然而,一般文献通常会有关于傅里叶变换的频率分量和图像空间特征之间联系的阐述。变换最慢的频率成分(u=v=0)对应一幅图像的平均灰度级。当从变换的原点移开时,低频对应着图像的慢变换分量,较高的频率开始对应图像中变化越来越快的灰度级。这些事物体的边缘和由灰度级的突发改变(如噪声)标志的图像成分。

     

    在频率域中的滤波基础

    1. (-1)^(x+y)乘以输入图像来进行中心变换

    2. 由(1)计算图像的DFT, 即F(u,v)

    3. 用滤波器函数H(u,v)乘以F(u,v)

    4. 计算(3)中的结果的反DFT

    5. 得到(4)中的结果的实部

    6. 用(-1)^(x+y)乘以(5)中的结果



    另外我还想说明以下几点:

    1、图像经过二维傅立叶变换后,其变换系数矩阵表明:

    若变换矩阵Fn原点设在中心,其频谱能量集中分布在变换系数短阵的中心附近(图中阴影区)。若所用的二维傅立叶变换矩阵Fn的原点设在左上角,那么图像信号能量将集中在系数矩阵的四个角上。这是由二维傅立叶变换本身性质决定的。同时也表明一幅图像能量集中低频区域。
    2 、变换之后的图像在原点平移之前四角是低频,最亮,平移之后中间部分是低频,最亮亮度大说明低频的能量大(幅角比较大)


    Reference:

    http://hi.baidu.com/liyaowang/blog/item/9b7f07d7b39fdec0a044df45.html

    http://cns-alumni.bu.edu/~slehar/fourier/fourier.html#filtering

    http://hi.baidu.com/walanlixuming/blog/item/36d49ad5857a22c951da4b26.html



               

    再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

    展开全文
  • c#写的傅里叶变化 傅里叶变化 c# 傅里叶 傅里叶 傅里叶 傅里叶
  • python实例 制作压力 傅里叶变换制作频谱
  • 傅里叶变换dft = cv.dft(np.float32(img),flags = cv.dft_complex_output)傅里叶逆变换img_back = cv.idft(f_ishift)实验:将图像转换到频率域,低通滤波,将频率域转回到时域,显示图像import numpy as npimport cv...
  • 傅里叶变换 图像

    2017-05-16 19:43:00
    图像傅里叶变换 http://www.360doc.com/content/12/0911/09/10724725_235476330.shtml python 简单图像处理(13) 二值腐蚀和膨胀,开运算、闭运算 ...
  • 图像傅里叶分析

    千次阅读 2013-11-16 19:11:24
    由于图像处理关心的是采样后的数据,我们需要可以处理这些数据的一种傅里叶变换。傅里叶分析可以分析不同滤波器的频率特征。本节,我们将阐述如何通过傅里叶分析认识图像的频率信息。傅里叶变换是对每个频率的幅度各...
  • 傅里叶变换经典图书

    2018-10-26 09:26:56
    傅里叶变换经典图书。与大家分享,希望大家能喜欢。好东西。
  • 傅里叶变换图像.cpp

    2019-12-25 20:09:49
    所谓自动聚焦技术,就是利用自动化技术使一个光学成像系统在成像的时候能自动地调节,使图像传感器能达到最佳的聚焦位置...将数字图像经傅里叶变换后得到频谱,计算频谱中的高频分量,以此作为图像清晰程度的判据
  • 相位相关法图像拼接,代码使用MATLAB编写。 傅里叶方法。
  • 图像处理傅里叶变换图像变化What do Fourier Transforms do? What do the Fourier modes represent? Why are Fourier Transforms notoriously popular for data compression? These are the questions this article ...
  • 如何理解 图像傅里叶变换的频谱

    万次阅读 多人点赞 2019-01-04 14:27:01
    原 如何理解 图像傅里叶变换的频谱 2018年09月18日 16:43:00 Ring__Rain 阅读数:965 ...
  • 可称其为‘距离-灰度变化‘: 从正面看,由x轴与灰度值构成的切面如右上所示: 对应关系:时间—距离,信号强度—灰度值 傅里叶变换结果的对应关系: 一维傅里叶变换原理可以通俗理解为:将一个复杂无规律的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,418
精华内容 2,167
关键字:

傅里叶图