灰度图像--频域滤波 傅里叶变换之二维离散傅里叶变换

学习DIP第24天

转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不满意。有些网站转载了我的博文,很开心的是自己写的东西被更多人看到了,但不开心的是这段话被去掉了,也没标明转载来源,虽然这并没有版权保护,但感觉还是不太好,出于尊重文章作者的劳动,转载请标明出处!!!!

开篇废话

今天要记录的是二维离散傅里叶变换的一些性质,也是傅里叶在图像处理中要用到的一些性质,所以要重点学习下,并总结下。重点在性质。

二维DFT数学公式

根据一维离散傅里叶变换,直接给出二维DFT的公式,这个公式的具体代码实现在前面文章中有提到,但是实际中由于DFT计算速度过慢,普遍使用FFT作为快速算法,DFT和IDFT的公式如下:

二维DFT公式的推导过程与一维相同,对连续傅里叶变换进行采样或者是将原始数据周期复制后计算傅里叶级数,然后取主值,在此不再赘述。

性质

空间与频率关系

对于MxN的图像,是空间的取样间隔,所以原函数的总长度是Mx和Nx,频域间隔u,v为以下关系:

所以,频率域样本间隔与空域样本间隔成反比。

平移,旋转与中心化

将原图像进行平移或者对频域信号进行移动时,与其对应的频率和空域也会有相应的变换,变换关系如下:

可以看出,频率域原点移动到(u0,v0),对应的空域为原信号与后面复指数信号的乘积,这也是所有书上都要说的频谱中心化,也就是(u0,v0)=(M/2,N/2),这样就能得到:

上面的(-1)^(x+y),是M/2,N/2,带入得到的。

对于旋转特性,我们选择用极坐标表示二维笛卡尔坐标系,于是有以下变换性质:

得出结论,频谱与空域具有旋转同步性,即空域旋转多少频域就旋转多少,频域旋转空域就旋转多少。

证明实验如下:

原图

傅里叶变换后的频谱

旋转后的图片

旋转后的频谱

微分性质

微分性质,即一个信号的微分的傅里叶变换具有对高频成分的放大作用

f‘(x,y)<=>j*u*v*F(u,v)

所以得出微分可以计算边缘-这种高频成分的功能

周期性与对称性

DFT的周期性与离散周期信号的傅里叶级数一致,即原信号周期,频谱也周期,图像大小为MxN:

k1,k2为整数。

下面给出原始频谱和中心化后的频谱的图示,来自冈萨雷斯:

可以看出,频谱是周期排布的。

下图总结了其他一些对称的变换性质:

对应几个特殊的性质的解释:

傅里叶谱与相角

图像傅里叶转换后的结果是复数矩阵,因为复数没法用在图像中显示,所以在图像中我们看到的都是幅度,也就是结果实部和虚部的平方和的平方根,也就是复数的长度,但是复数还有另一个性质,也就是其相位,根据实验显示,相位存储了图像的轮廓信息,或者叫做机构信息,而幅度存储了灰度信息。下面来看一下实验:

首先,我们通过FFT得到lena的傅里叶变换结果,也就是等大的复数矩阵,我们将所有元素的长度归一化,也就是用每个像素的实部和虚部除以其距离,这样将得到幅度为1,但相角不同的复数矩阵,然后用IFFT进行逆运算,得到的计算结果在0.001左右,为了显示,将其扩大1000倍进行显示:

原图

相角重建

接下来考察幅度的影响,我们将所有元素的相角设为45,135,225,315度,也就是对所有的实部和虚部设为其距离除以根号2,这样得到的IFFT结果如下:

可见,幅度对结构信息没有影响。

代码:

//将幅度归一,相角保持不变,图中Complex为复数数据
void OneRange(Complex *src,Complex *dst,int width,int height){

    double realv=0.0,imaginv=0.0;
    for(int i=0;i<width*height;i++){
        realv=src[i].real;
        imaginv=src[i].imagin;
        double distance=sqrt(realv*realv+imaginv*imaginv);
        dst[i].real=realv/distance;
        dst[i].imagin=imaginv/distance;

    }

}
//将相角归一,相角保持不变,图中Complex为复数数据
void OneAngel(Complex *src,Complex *dst,int width,int height){

    double realv=0.0,imaginv=0.0;
    for(int i=0;i<width*height;i++){
        realv=src[i].real;
        imaginv=src[i].imagin;
        double distance=sqrt(realv*realv+imaginv*imaginv);
        dst[i].real=distance/sqrt(2.0);
        dst[i].imagin=distance/sqrt(2.0);

    }

}

二维卷积定理

卷积定义:

频域和空域的卷积关系:

卷积的一个问题在于卷积以后会对原始信号的周期进行一定长度的扩展,比如长度为A和B的信号的卷积,卷积结果的信号长度为A+B-1,所以对于周期信号,卷积后的结果有可能造成信号纠缠:

解决这个问题的方法很简单,就是对周期进行用零扩展,长度为A和B的信号卷积,将A和B都扩展成A+B-1,用0填充。f和h的图像进行卷积,首先进行扩展:

总结

至此对图像傅里叶变换的一些性质进行了简要介绍,并总结出下表,方便以后出现问题进行查阅:

下一篇介绍图像混淆

时间: 2024-12-28 22:59:16

灰度图像--频域滤波 傅里叶变换之二维离散傅里叶变换的相关文章

c语言数字图像处理(六):二维离散傅里叶变换

基础知识 复数表示 C = R + jI 极坐标:C = |C|(cosθ + jsinθ) 欧拉公式:C = |C|ejθ 有关更多的时域与复频域的知识可以学习复变函数与积分变换,本篇文章只给出DFT公式,性质,以及实现方法 二维离散傅里叶变换(DFT) 其中f(x,y)为原图像,F(u,v)为傅里叶变换以后的结果,根据欧拉公式可得,每个F(u,v)值都为复数,由实部和虚部组成 代码示例 1 void dft(short** in_array, double** re_array, doubl

多尺度二维离散小波重构waverec2

clc,clear all,close all; load woman; [c,s]=wavedec2(X,2,'haar');%进行2尺度二维离散小波分解.分解小波函数haar %多尺度二维离散小波重构(逆变换) Y=waverec2(c,s,'haar'); figure; subplot(1,2,1),imshow(X,map),title('原始图像'); subplot(1,2,2),imshow(Y,map),title('重构图像');

单尺度二维离散小波重构(逆变换)idwt2

clc,clear all,close all; load woman; %单尺度二维离散小波分解.分解小波函数haar [cA,cH,cV,cD]=dwt2(X,'haar'); %单尺度二维离散小波重构(逆变换) Y=idwt2(cA,cH,cV,cD,'haar'); figure; subplot(1,2,1),imshow(X,map),title('原始图像'); subplot(1,2,2),imshow(Y,map),title('重构图像');

单尺度二维离散小波分解dwt2

clc,clear all,close all; load woman; [cA,cH,cV,cD]=dwt2(X,'haar');%单尺度二维离散小波分解.分解小波函数haar figure,imshow(X,map),axis image; figure; subplot(2,2,1),imshow(uint8(cA));axis off;title('低频系数图像'); subplot(2,2,2),imshow(uint8(cH));axis off;title('水平高频系数图像');

多尺度二维离散小波分解wavedec2

clc,clear all,close all; load woman; [c,s]=wavedec2(X,2,'db1');%进行2尺度二维离散小波分解.分解小波函数-db1 [cH1,cV1,cD1]=detcoef2('all',c,s,1);%尺度1的所有方向的高频系数 [cH2,cV2,cD2]=detcoef2('all',c,s,2);%尺度2的所有方向的高频系数 cA1=appcoef2(c,s,'db1',1);%尺度1的低频系数 cA2=appcoef2(c,s,'db1',

小波分析:三、二维离散小波变换

四.二维离散小波变换 声明: 该文为本人对小波的理解,不保证正确性与严谨性. 参考: <数字图像处理> Gonzalez P317 1. 概述 在给定尺度函数和小波函数下,可以组合出一个二维尺度函数和三个二维小波函数: f(x, y)离散函数可以分解为这四个函数不同尺度与位置的线性组合(2DIDWT): 其中近似系数和细节系数分别如下(2DDWT): 2. 其他符号说明 分别为不同尺度和位置的尺度函数和小波函数,定义如下: 3. 理解 细节的阶数越高,其尺度越小,越细致,相当于傅立叶中的高频部

灰度图像--频域滤波 傅里叶变换之离散傅里叶变换(DFT)

学习DIP第23天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不满意.有些网站转载了我的博文,很开心的是自己写的东西被更多人看到了,但不开心的是这段话被去掉了,也没标明转载来源,虽然这并没有版权保护,但感觉还是不太好,出于尊重文章作者的劳动,转载请标明出处!!!! 开篇废话 一如既往的开篇废话,今天介绍离散傅里叶变换(DFT),学习到这,不敢说对傅里叶有多了解,

灰度图像--频域滤波 傅里叶变换之傅里叶级数

学习DIP第18天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不满意........ 0.开篇废话 废话开始,故事是这样的,当我上大学的时候,学过信号与系统,当时已经学了高的数学,也知道了傅里叶变换的公式,但是,公式是怎么来的,有什么用,不清楚,学信号与系统的时候,知道傅里叶用在什么地方,但是不清楚为什么可以用在这些地方,书中的记忆是:傅里叶变换或者其家族的变换

灰度图像--频域滤波 概论

学习DIP第25天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不满意.有些网站转载了我的博文,很开心的是自己写的东西被更多人看到了,但不开心的是这段话被去掉了,也没标明转载来源,虽然这并没有版权保护,但感觉还是不太好,出于尊重文章作者的劳动,转载请标明出处!!!! 开篇废话 这两天写了一下频域滤波的代码,并且发现以前博客里代码的一个BUG,产生BUG的原因是一维