精华内容
下载资源
问答
  • 通俗来讲,一维傅里叶变换是将一个一维的信号分解成若干个三角波。 对于一个三角波而言,需要三个参数来确定它:频率,幅度 A ,相位。因此在频域中,一维坐标代表频率,而每个坐标对应的函数值也就是是一个复数,...
  • 本程序主要实现了二维傅里叶变换,其中先对图像矩阵进行预处理(即图像中心化),然后进行行傅里叶变换,再对其进行列变换,进行行列变换是调用自己写的一维傅里叶变换函数ImFFT实现的。程序输入为图像矩阵A,输出为...
  • 资源为二维傅里叶变换的C++实现,内含多个示例,比较详细。
  • 图像的二维傅里叶变换频谱图特点研究,以及基于halcon得到的一些图谱分析。
  • 结合频谱移位的二维傅里叶变换FPGA实现
  • 提出了合成孔径激光成像雷达(SAIL)的二维傅里叶变换成像算法,即对回波信号进行顺轨向相位二次项共轭补偿后直接实施二维傅里叶变换。归纳了啁啾光源侧视SAIL,平移二次项波面直视SAIL和偏转平面波面直视SAIL的数据...
  • 二维傅里叶分解matlab代码栅格图 该算法计算神经活动的一维或二维嵌入。 假设在时间点上,尖峰矩阵S是神经元。 我们有一个python 3和matlab实现,还有一个在python实现中运行它的GUI。 有关使用它的Jupyter笔记本,...
  • 主要是傅里叶变换在图像处理中降噪的应用
  • 二维傅里叶变换

    2014-10-10 12:43:20
    二维傅里叶变换 一个随时间或空间变化的周期函数(信号)f(x),可以看作是许多具有不同频率的基元
  • 针对大口径光学元件干涉测试过程中,测试装置和干涉腔长较大,气流扰动和环境振动对移相测试过程产生影响等问题,采用一种基于二维傅里叶变换的单帧干涉图处理方法,只需要对一幅空间载频干涉条纹图进行处理即可获得待测...
  • 二维傅里叶分解matlab代码LowRankApprox 该Julia软件包基于自适应随机矩阵草绘中的一些最新技术,为BLAS / LAPACK兼容矩阵提供了快速的低秩近似算法。 当前实现的算法包括: 素描方法: 高斯随机 随机子集 二次采样...
  • % []的作用是将mod_ima_log的最大最小值分别作为纯白255和纯黑0,中间值映射到0到255之间 title('输入图像的二维傅里叶幅度谱'); subplot(1,2,2),imshow(phase_ima,[]); title('输入图像的二维傅里叶相位谱'); ...

    function imt = fftcenter(ima) % 图像中心化转换函数

    [xs,ys] = size(ima);

    for i = 1:xs

    for j = 1:ys

    imt(i,j) = ima(i,j)*power((-1),(i+j)) ;%输入图像每个像素点乘以(-1)^x+y因子

    end

    end

    return

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    % 2-D FFT 程序包

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    function proj04();

    ima = imread('Fig4.41(a).jpg');

    imshow(ima);

    title('原始图像');

    ima_f = fft2(ima); % 对图像ima求二维快速傅里叶变换

    mod_ima = abs(ima_f) % 要求幅度谱,需对傅里叶变换求模

    mod_ima_log = uint8(log2((mod_ima))) % 要求幅度谱需对FFT后得到的模取对数

    phase_ima = atan2(imag(ima_f),real(ima_f)); % 求相位谱,arctan必须使用一个四象限反正切来计算,调用MATLAB的atan2函数

    figure,subplot(1,2,1),imshow(mod_ima_log,[]); % []的作用是将mod_ima_log的最大最小值分别作为纯白255和纯黑0,中间值映射到0到255之间

    title('输入图像的二维傅里叶幅度谱');

    subplot(1,2,2),imshow(phase_ima,[]);

    title('输入图像的二维傅里叶相位谱');

    threeD_mod_ima_log = log2(mod_ima)+1;

    [x1,y1] = size(threeD_mod_ima_log);

    [a1,b1]=meshgrid(1:x1,1:y1); % 使用函数mesh绘制三维傅立叶图需要先进行meshgrid

    figure,subplot(1,2,1),mesh(a1,b1,threeD_mod_ima_log);

    shading interp; % 在网格片内采用颜色插值处理,使得三维表面图显得光滑

    title('输入图像的三维傅里叶幅度谱');

    [x2,y2] = size(phase_ima);

    [a2,b2] = meshgrid(1:x2,1:y2); % 使用函数mesh绘制三维傅立叶图需要先进行meshgrid

    subplot(1,2,2),mesh(a2,b2,phase_ima);

    shading interp;

    title('输入图像的三维傅里叶相位谱');

    %

    s = fftshift(ima_f); % 调用fftcenter函数实现图像的中心化变换(为了对比fftcenter)

    mod_s = abs(s) % 要求幅度谱,需对傅里叶变换求模

    mod_s_log = uint8(log2(mod_s)) % 要求幅度谱需对FFT后得到的模取对数

    phase_s = atan2(imag(s),real(s)); % 求相位谱,arctan必须使用一个四象限反正切来计算,调用MATLAB的atan2函数

    figure,imshow(mod_s_log,[]); % []的作用是将mod_ima_log的最大最小值分别作为纯白255和纯黑0,中间值映射到0到255之间

    title('fftshift函数的中心变换图的二维傅里叶幅度谱');

    imt = fftcenter(ima); % 调用自编函数对图像进行中心化变换

    imt_f = fft2(imt); % 对中心化变换后的图像求二维傅里叶变换

    figure,imshow(imt_f,[]);

    title('使用自编函数fftcenter()中心变换图的二维傅里叶图谱');

    mod_imt = abs(imt_f); % 要求幅度谱,需对傅里叶变换求模

    mod_imt_log = uint8(log2(mod_imt)); % 要求幅度谱需对FFT后得到的模取对数

    phase_imt = atan2(imag(imt_f),real(imt_f)); % 求相位谱,arctan必须使用一个四象限反正切来计算,调用MATLAB的atan2函数

    figure,subplot(1,2,1),imshow(mod_imt_log,[ ]);

    title('中心变换图的二维傅里叶幅度谱');

    subplot(1,2,2),imshow(phase_imt,[]),

    title('中心变换图的二维傅里叶相位谱');

    %

    threeD_mod_imt_log = log10(mod_imt)+1;

    [x3,y3] = size(threeD_mod_imt_log);

    [a3,b3]=meshgrid(1:x3,1:y3); % 使用函数mesh绘制三维傅立叶图需要先进行meshgrid

    figure,subplot(1,2,1),mesh(a3,b3,threeD_mod_imt_log);

    shading interp;

    %figure,plot3((1:x),(1:y),ak); shading interp;

    title('中心变换图的三维傅里叶幅度谱');

    [x4,y4] = size(phase_imt);

    [a4,b4] = meshgrid(1:x4,1:y4); % 使用函数mesh绘制三维傅立叶图需要先进行meshgrid

    subplot(1,2,2),mesh(a4,b4,phase_imt);

    shading interp;

    title('中心变换图的三维傅里叶相位谱');

    %

    imt_if = ifft2(imt_f);

    imt_if_abs = abs(imt_if);

    figure,subplot(1,2,1),imshow(imt_if_abs,[]);

    title('中心化变化图像');

    ima = imread('Fig4.41(a).jpg');

    subplot(1,2,2),imshow(ima);

    title('原始图像');

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    % 设计一个高斯滤波器

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    function im=Lowpassfiltering()

    st = imread('Fig4.41(a).jpg');

    [M,N] = size(st);

    D0 = 20; % 设定截止频率D0

    x = 2*M;

    y = 2*N;

    % 进行高斯滤波之前先对图像进行填充,填充后的图像尺寸为(2M*2N)

    for i=1:x

    for j=1:y

    if((i<=M)&&(j<=N))

    st(i,j)=st(i,j);

    else

    st(i,j)=0;

    end

    end

    end

    figure,imshow(st);

    title('对输入图像进行填充');

    imwrite(st,'K1.jpg');

    figure(2);

    st = fftshift(fft2(st)); % 自编函数中心化效果有问题,因此调用fftshift函数实现中心化

    for i = 1:x

    for j = 1:y

    D(i,j) = sqrt((i-M)^2+(j-N)^2); % 中心点为(M,N)

    h(i,j) = 1*exp(-1/2*(D(i,j)^2/D0^2)); % 系统函数H(u,v)

    st(i,j) = h(i,j)*st(i,j); % 滤波过程

    end

    end

    st = fftshift(ifft2(st)); % 进行傅里叶反变换时再进行一次中心化

    st_abs = abs(st);

    for i=1:M

    for j=1:N

    st_k(i,j)=st_abs(i,j); % 对图像进行裁剪,去除填充部分

    end

    end

    imshow(st_k,[])

    title('GLPF滤波后的输出图像(已裁剪)');

    st_k1 = imread('Fig4.41(a).jpg');

    for i=1:M

    for j=1:N

    st_k2(i,j) = st_k1(i,j) - ( st_k(i,j)); % 原始图像减去GLPF图像,得到锐化图像

    end

    end

    figure,imshow(st_k2,[])

    title('原始图像减去GLPF滤波图像后的锐化图像');

    展开全文
  • 主要介绍了C++实现二维图形的傅里叶变换的方法,是C++程序设计里一个重要的应用,需要的朋友可以参考下
  • 回顾一下一维FT公式: 通俗来讲,一维傅里叶变换是将一个一维的信号分解成若干个复指数波。而由于 ,所以可以将每一个复指数波 都视为是 余弦波+j*正弦波的组合。对于一个正弦波而言,需要三...

    点击上方“机器学习与生成对抗网络”,关注"星标"

    获取有趣、好玩的前沿干货!

    来自 | 知乎  阿姆斯特朗

    链接 | https://zhuanlan.zhihu.com/p/110026009

    文仅交流,侵删

    1.回顾一下一维FT

    公式:

    7fda2bd8666d54ed75fdd6bf66874c7916a.jpg

    通俗来讲,一维傅里叶变换是将一个一维的信号分解成若干个复指数波

    a8bc6985e8043277bbcfaa01ca002545d11.jpg 。而由于 

    d737e97f037ff5ce27dfe229f1b3f8cc1e1.jpg ,所以可以将每一个复指数波 

    a8bc6985e8043277bbcfaa01ca002545d11.jpg都视为是

    余弦波+j*正弦波的组合。

    对于一个正弦波而言,需要三个参数来确定它:频率

    88d306ea636ab151d14f795806b074e21d4.jpg ,幅度 

    1bd3681b289d1c2dae5749f14b042538426.jpg ,相位 

    d72a7d4020418472dd4b01935ec511be442.jpg 。因此在频域中,一维坐标代表频率,而每个坐标对应的函数值也就是 

    eb2bb3f7073cd44daeef7762d1e066e1cb2.jpg 是一个复数,其中它的幅度 

    41a303d9c306d1f64018a70414275393361.jpg 就是这个频率正弦波的幅度 

    1bd3681b289d1c2dae5749f14b042538426.jpg ,相位 

    407fcce10c98c97f2e8e8bd166a04252dfb.jpg 就是 

    d72a7d4020418472dd4b01935ec511be442.jpg 。下图右侧展现的只是幅度图,在信号处理中用到更多的也是幅度图。

    f8db888480ef2a93479412f434b62eb5.png

    一维傅里叶变换就是一个基变换,在时域中,基是一族冲激信号

    4ec26a3baac1ac657fd53b9d20658dc940e.jpg ,在频域中;基是 

    c42ca08360a3c20b27272370bc8896605d1.jpg ,而且这组基是正交基。

    d3bf395152c85804ae0cb85c08388213.png

    F=Mf,基变换示意图

    2.类比:从一维到二维

    一维信号是一个序列,FT将其分解成若干个一维的简单函数之和。二维的信号可以说是一个图像,类比一维,那二维FT是不是将一个图像分解成若干个简单的图像呢?

    确实是这样,

    二维FT将一个图像分解成若干个复平面波

    0be5ded2ea17760061a7d99771f2f537363.jpg 

    之和。如下图:

    dfb26bae0d09e7ec44bcd4cd81186518.png

    二维FT的公式:

    66b43f77bb15231a20dbceef4551b22358a.jpg

    通过公式,我们可以计算出,

    每个平面波在图像中成分是多少。从公式也可以看到,二维傅里叶变换就是将图像与每个不同频率的不同方向的复平面波做内积(先点乘在求和),也就是一个

    求在基

    c8347f85a08b5329dbef19a5535f68d2c2c.jpg 上的

    投影的过程。(应该知道

    c0ff7fc1072542ea99c81d8a869b7f4d39e.jpg 是b在a上的投影,只不过这里的|a|的值被设为1,所以只有内积)

    3.什么是二维频率域K-SPACE

    对于正弦平面波,可以这样理解,在一个方向上存在一个正弦函数,在法线方向上将其拉伸。前面说过三个参数可以确定一个一维的正弦波。哪几个参数可以确定一个二维的正弦平面波呢?答案是四个,其中三个和一维的情况一样(频率

    88d306ea636ab151d14f795806b074e21d4.jpg ,幅度 

    1bd3681b289d1c2dae5749f14b042538426.jpg ,相位 

    d72a7d4020418472dd4b01935ec511be442.jpg),但是具有相同这些参数的平面波却可以有不同的方向 

    530915b092e9a8bea3f30edc0a7e438df2c.jpg 。如下图所示:

    7fec12deb8b30f2bfa5d5bfdb820ab69.png

    两个不同方向的平面波叠加

    类比一维中,幅度和相位可以用一个复数表示,它可以作为我们存储的内容。但是还有两个:一个频率一个方向。这时想到向量是有方向的,也是有长度的。所以我们用一个二维的矩阵的来保存分解之后得到的信息。这个矩阵就是K空间。(一般用k来表示空间频率,单位是1/m)

    什么意思呢?就是说一个二维矩阵点

    2861a8ef78c7f25d4c5f04d530e21e7cf6c.jpg 代表这个平面波的法向量

    530915b092e9a8bea3f30edc0a7e438df2c.jpg,这个向量的模 

    ed15d68676df4ad5e12701b7f1f818e2848.jpg 代表这个平面波的频率 

    88d306ea636ab151d14f795806b074e21d4.jpg ,这个点里面保存的内容复数就是此平面波的幅度和相位。下面这个图很好的体现了这一点:

    20fa7413b2bd3b59caf483982e8741b8.png

    也因此K空间的中心对于低频,周围对于高频。如下图,K空间中只有(0,0)处有值,也就是信号都是直流即不存在变化,所以实空间就是一张白纸。

    bdcedba4d22bbb0b20975886efff408d.png

    再如下面这个图片,

    中心低频贡献了图像的主体,周围高频提供图像的细节和边缘。

    944d46ea0e3f5d50e06e273be8a46547.png

    因此,k空间的每一个位置存储的数代表了所在位置复平面波在图像中占多少成分,我们就可以用

    每个系数*所代表的平面波相加得到原来的图像,也就是下图。

    所以k空间和对应图像储存的信息含量是一样的,只不过表现形式不同,或者说基不同。

    9f641105f1fa2a2a5a8a456611dd2a51.png

    4.K空间的一些性质

    离散的2D-FT

    在数字图像中,数据都是离散的。也就涉及到采样的问题,和一维一样,如果采样率过低,k空间就会混叠。同时在k空间中采样过低,图像也会混叠。

    FOV和分辨率在k空间和图像中是相反的关系。也就是:

    823bdfefed1469e4f7c8c04e4a8a0a32402.jpg 

    eded2a21132e313eafca7f712dcb6dd9750.jpg

    938739463831a9fc50f5624110a29a4c.png

    dc9077d12acb3a0c246e460780bcfc02.png

    减小kmax,使得图像分辨率下降,减小Δk,使得FOV缩小。

    旋转不变性

    从平面波的角度很容易理解,旋转没有改变平面波的幅度相位,只是将所有的平面波都旋转了一个角度。下面这个图像显示了二维傅里叶变换中,实空间旋转多少,频率空间也会相应旋转多少。这其实是

    高维傅里叶变换缩放定理的一种特殊情况。(连续的是可以证明的,离散的涉及插值 ,不一定完全准确)

    2d65c13df7f8a166b5fb440c4209f722.png

    5.其他

    1.因为matlab中的fft算法都是将0放在第一个的,所有写matlab时一定要将k空间fftshift一下使得零频回到k空间中心。

    2.简单的应用k空间进行去噪例子。通过去掉明显的k空间的异常峰,可以去除图像中有规律变化的噪声或者伪影。

    a877289d55ca39ea332b7817734fcd8e.png

    指纹去噪

    63fa7471e8f69035f9955f563aa847a4.png

    天体表面去噪

    6、评论及解答

    1、始终想不通为啥各个波的叠加能反应出某一个像素点的信号大小

    你把它理解向量分解就懂了,平面波就是基,k空间里的数就是基的系数。你得到系数(k空间)的时候就是在投影,变为原向量(图像)就是叠加。只不过这里一个图像是一个向量而已。

    复平面波叠加时,先经过放大(幅度)在经过移位(相位),相位信息里保留了很多位置信息,可以查看我的另一个回答:

    为什么用图像二维傅里叶变换的相位谱进行反变换,能够大致得到原图的形状,而幅度谱则不行呢?

    https://www.zhihu.com/question/23718291/answer/1057562032

    2、傅里叶变换后图像是关于频率矩形中心对称的,那么对称的4个平面三角波不就是注定了幅值和相角,频率是相等的。那么这样不是说明了任何波都是包含了4个这样对称的三角波,由它们组成?

    是中心共轭对称,而没有左右上下的对称。而且只有实数图像的k空间才有这种特点,这是为了将复平面波中的虚部抵消掉,只留下实数部分。复数图像的k空间没有共轭对称的特点。下面是k空间的一部分数据,中心点为(101,101)。

    e08c60ee27bb2246cbf50e5d334cacb2.png

    参考:

    [1] http://mriquestions.com

    [2] A. Zisserman's lecture in B14 Image Analysis

    链接:http://www.robots.ox.ac.uk/~az/lectures/ia/lect2.pdf

    (这个slides真的不错,大家可以下载看看,里面也有其他的内容)

    展开全文
  • 二维快速傅里叶变换-C语言-迭代法.c 实现方法为:C语言,先对每一行做傅里叶,再对结果的每一列做傅里叶
  • 二维傅里叶变换插值算法 可用于图像插值等
  • 傅里叶级数、一维傅里叶变换到二维傅里叶变换数理推导 参考资料: 如何理解傅里叶级数公式 从傅里叶级数到傅里叶变换 高维傅里叶变换的推导 IDL实现傅里叶变换 傅里叶级数 一维傅里叶变换 二维傅里叶变换 ...

    傅里叶级数、一维傅里叶变换到二维傅里叶变换数理推导

    参考资料:
    如何理解傅里叶级数公式
    二重傅里叶级数
    从傅里叶级数到傅里叶变换
    高维傅里叶变换的推导
    连续傅里叶变换和离散傅里叶变换
    二维离散傅里叶变换
    IDL实现傅里叶变换

    想要用傅里叶变换的思维处理一个时序数据,将时序信息转换为参数信息,实现降维的目的。大致了解了一下傅里叶级数,如何从傅里叶级数转到傅里叶变换以及一维傅里叶变换和二维傅里叶变换的过渡,傅里叶变换的求解,快速傅里叶变换等知识。
    傅里叶变换是一种从时域信息转为频域信息的手段,可以理解为从不同的角度来观察一个事物,例如总是被用来举例的听到的钢琴曲和乐谱,就是一个是时域一个频域,但是无论是时间维度听到的钢琴声还是频域维度看到的乐谱,他俩实质上描述的东西是一样的。

    傅里叶级数

    首先是傅里叶级数的概念以及这个概念被提出来的初衷。
    最早,数学家发现某些周期函数可以由三角函数的和来表示,后来又有人猜测任意周期函数都可以写为三角函数之和。只需要三角函数之和函数满足以下几点:1)有常数项;2)同时包含奇函数和偶函数来组合出任意函数;3)周期与原函数周期相同,为T;4)可以调整振幅来逼近原函数(也就是系数项)。
    构造出来的三角函数之和函数大致如下:
    在这里插入图片描述
    接下来的重点是如何来确定参数:
    在这里插入图片描述
    在确定参量的时候,引入欧拉公式:
    在这里插入图片描述
    最终得到的系数表达式为:
    在这里插入图片描述
    具体的函数构造以及求解原理可以参照博客如何理解傅里叶级数公式

    傅里叶变换

    傅立叶级数是基于周期函数的,如果我们把周期推广到无穷,那么也就变为了非周期函数,这就是傅立叶变换。
    在这里插入图片描述

    一维傅里叶变换到二维傅里叶变换

    对于傅里叶变换从一维到二维的扩展,主要参照知乎的一个回答
    类比于一维傅里叶变换将一个函数分解成若干个一维的简单函数(正弦波)之和,二维傅里叶变换将一个图像分解成若干个正弦平面波之和。如下图:
    在这里插入图片描述
    在这里插入图片描述
    二维离散傅里叶变换
    二维离散傅里叶变换DFT可分离性的基本思想是DFT可分离为两次一维DFT。因此可以用通过计算两次一维的FFT来得到二维快速傅里叶FFT算法。根据快速傅里叶变换的计算要求,需要图像的行数、列数均满足2的n次方,如果不满足,在计算FFT之前先要对图像补零以满足2的n次。
    一个M行N列的二维图像f(x,y),先按行队列变量y做一次长度为N的一维离散傅里叶变换,再将计算结果按列向对变量x做一次长度为M傅里叶变换就可以得到该图像的傅里叶变换结果,如式所示:
    在这里插入图片描述
    将上式分解开来就是如下的两部分,先得到F(x,v),再由F(x,v)得到F(u,v):
    在这里插入图片描述
    每一行由N个点,对每一行的一维N点序列进行离散傅里叶变换得到F(x,u),再对得到F(x,u)按列向对每一列做M点的离散傅里叶变换,就可以得到二维图像f(x,y)的离散傅里叶变换F(u,v).
    在这里插入图片描述
    同样,做傅里叶逆变换时,先对列向做一维傅里叶逆变换,再对行做一维逆傅里叶变换,如下式所示:
    在这里插入图片描述

    展开全文
  • 二维傅里叶变换的理解和使用

    千次阅读 2019-11-08 09:14:56
    二维傅里叶 似模似样的前言 最近的瑕疵检测项目需要在有纹理的产品上做很细致的检测。由于当前做项目使用的还是halcon居多,目前知道的方法还是傅里叶变换比较靠谱。 但仅靠halcon自带的样例并不能很好的理解...

    似模似样的前言

    最近的瑕疵检测项目需要在有纹理的产品上做很细致的检测。由于当前做项目使用的还是halcon居多,目前知道的方法还是傅里叶变换比较靠谱。

    但仅靠halcon自带的样例并不能很好的理解和使用傅里叶,决定综合网上其他同学的理解,写下这篇博客,从原理到工程应用都解析一下。

    一维傅里叶

    我们先从一维傅里叶开始说起,一维傅里叶主要是对原信号做时域到频域的转换,大体意思就是各种连续信号可以被分解为不同的正弦和余弦信号
    ​​
    ft演示图
    类似于上图中的蓝色信号,可分解为n多的正余弦信号,这种理解同学们在脑中过一下就好,反正傅里叶同学就这么觉得。当然这个还算在时域上的演示,其实能从原信号转换到如此结果,还可以有另一种很直观的显示。

    ft演示图2
    通过本复制粘贴小王子的时空忍术,窃取到上面的图片,同学们可以在上图中看到两幅图像,时域图像和频域图像。时域图像很直观,就是那些七彩斑斓的正余弦相加得到的最终图像,而频域图像就是各分量的表示,横坐标表示频率,纵坐标为幅值

    我一向把编程理解为施法,那请各位大魔法师想象一下,你对着一个莫名其妙的连续信号大声施咒“Fourier Tran… Tran… Tran… TransForm”,然后它就瞬间爆炸,成为那些彩色正余弦,之后你就可以在时间方向和频率方向观测到两幅图像了。

    更细致的解释有很多,有很多大神做了更详细的解释,但本文到此为止。

    然后现在的问题是怎么进行两者的转换?根据我查阅的资料,可以理解为计算原信号与某个正弦波的***相关性***

    相关性计算演示
    上图是我个人使用的c#程序运行截图,其中上方为原始图像
    Γ ( x ) = sin ⁡ ( x ∗ 4 / 180 ∗ P I ) + sin ⁡ ( x ∗ 8 / 180 ∗ P I ) + 5   \Gamma(x) = \sin(x*4/180*PI)+\sin(x*8/180*PI)+5\, Γ(x)=sin(x4/180PI)+sin(x8/180PI)+5

    我把它与 sin ⁡ ( x ∗ 4 / 180 ∗ P I )   \sin(x*4/180*PI)\, sin(x4/180PI)相乘,得到下图。两幅图像采样点都是90.然后把第二幅图像的所有点的y值相加,得到约45.根据公式

    幅值 = Sum/(采样点数量/2)

    为什么要除以2,个人理解是哪怕一样的正弦相乘,正负号也没了,那就得到了双倍的快乐,所以除一下。本人目前只是验证了这个方法,至于为什么这样?相信各位大魔法师也不难百度到。

    一维傅里叶的结果中,x=0处的结果为直流分量,相当于是信号平均值的映射,其他的值相对于定义域的中间对称。(让同学们了解一下,可能会辅助应用,具体为什么,可能要待小弟后续补充了)

    现在看起来一维傅里叶的理解已经万事具备了,知道大致原理,知道怎么计算频率分量,之后的使用目前来看有以下几条:

    1.通过FT得到频域图,去除高频部分再IFT得到消除高频噪声干扰的信号(应用于一个不圆度检测项目,还是一个有文化的客户主动要求)

    2.可以分离不同频率段的信号,分析需要的频率段(应用于某信号分析项目,但最终未成功)

    从上面的应用介绍也能发现博主的工作是多么心酸。

    二维傅里叶

    之后就来到了今天的重点,对图像的傅里叶分析。对图像的傅里叶分析其实也好理解,就是逐行逐列的使用一维傅里叶,把每一行的灰度信息理解为函数的y值。变换后的频域图主要信息集中在图像的四角,很多时候需要进行中心化,方便使用者更直观的使用。演示图如下:

    原图

    频域图

    中心化频域图
    上面三张分别是原图 频域图 中心化后频域图,原图的信息会以特定规律出现在频域图上。你可以这么理解原图中某个方向存在亮度变换,他就会以该方向垂直的一个点显示在频域图上。对其进行操作就会在原图上得到相对应的变换。到这一步,各位魔法师理解了吗?如果没有,那我就勉为其难再解释一下。

    图像正中间为直流分量,表示平均灰度的映射,外围为频域信号,如果原图是一个左半边为255,右半边为0 的图片,转换后就会得到一张中间有一条白色直线的图。他表示主要的频率变换都在纵向上。

    下面开始演示效果
    原图

    频域图
    传说中的手动滤波
    结果
    是不是发现符合预期,经过手阻滤波器之后,纵向的纹理基本消失。本魔法学徒果然还是有潜力的。

    二维傅里叶的意义在我的理解中是类似滤波器的存在,就是给你做频域滤波的,什么高通低通带通带阻。你只要理解了它的意义,你就能很专业的使用它。这也是我在发现应用工程师有时候应用起来反而超过我的时候自我安慰的话。555555

    下面的内容可能就不再是应用层的了,本博主之后会解释一下公式。没有兴趣的同学可以退散了。

    展开全文
  • 实现图像的二维傅里叶变换的频谱图 图像的频谱分析有助于我们理解图像的二维傅里叶变换(离散非周期),并且以直观的方式来展现图像的低通或高通滤波,然而如何获得图像的频谱呢?在matlab中只要短短的几行代码,就...
  • 我们利用正交偏振方法将傅里叶谱的实部和虚部分开,从而测定了一维和二维傅里叶谱的相位。文中报道了位移狭缝和位移方孔傅里叶谱相位的测量结果,它们与用位移量计算出的相位值符合很好,因此证实了该方法的可靠性。在...
  • 图像的二维傅里叶变换和频谱

    千次阅读 2021-04-20 14:13:02
    实验4 图像的二维傅里叶变换和频谱一、实验目的通过本实验使学生掌握使用MATLAB 进行二维傅里叶变换的方法,加深对二维傅里叶变换的理解和图像频谱的理解。二、实验原理本实验是基于数字图像处理课程中的二维傅里叶...
  • 二维傅里叶变换的物理意义 数字图像处理 终于明白二维傅里叶变换是什么意义了
  • 二维傅里叶变换的矩阵表示

    千次阅读 2020-03-30 23:25:29
    二维傅里叶变换的矩阵表示二维傅里叶变换公式二维傅里叶矩阵公式表达1. F(v,u)F(v,u)F(v,u) 为 R1×1R^{1\times1}R1×1 时2. F(v,u)F(v,u)F(v,u) 为 RNv×MuR^{N_v\times M_u}RNv​×Mu​ 时 说明: 做完了图像处理...
  • 二维傅里叶变换扭曲性质证明二维扭曲性质证明 二维扭曲性质 对于傅里叶变换对 g(t1,t2)⟷G(f1,f2) g(t_1,t_2)\longleftrightarrow G(f_1,f_2) g(t1​,t2​)⟷G(f1​,f2​) 有 g(t1+αt2,t2)⟷G(f1,f2−αf1) g(t_1+\...
  • 文件内包含对二维傅里叶变换结果进行二维峰值检索的MATLAB代码
  • 资源中包含了用matlab编写的二维快速傅里叶变换函数源代码,调用格式如下: y=myfft2(x);
  • 在处理二维矩阵时,常想着如何把时域转换到频域来处理,因此翻来了以往数分里面的常用的傅里叶(Fourier Transform); (Notes:一下公式中 M,N分别为二维矩阵的列数和行数,f(x,y) 代表改二维矩阵,F(u,v)为转换后的...
  • 计算机利用二维傅里叶变换生成和再现全息图,很简单易懂。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,513
精华内容 5,805
关键字:

二维傅里叶