【数字图像处理】傅里叶变换在图像处理中的应用

from:https://www.cnblogs.com/tenderwx/p/5245859.html

1.理解二维傅里叶变换的定义

1.1二维傅里叶变换

二维Fourier变换:

逆变换:

1.2二维离散傅里叶变换

一个图像尺寸为M×N的 函数的离散傅里叶变换由以下等式给出:


其中 和。其中变量u和v用于确定它们的频率,频域系统是由所张成的坐标系,其中和用做(频率)变量。空间域是由f(x,y)所张成的坐标系。可以得到频谱系统在频谱图四角处沿和方向的频谱分量均为0。

离散傅里叶逆变换由下式给出:

令R和I分别表示F的实部和需部,则傅里叶频谱,相位角,功率谱(幅度)定义如下:


1.3用FFT计算二维离散傅里叶变换

二维离散傅里叶变换的定义为:

    

二维离散傅里叶变换可通过两次一维离散傅里叶变换来实现:

1)作一维N点DFT(对每个m做一次,共M次)

2)作M点的DFT(对每个k做一次,共N次)


这两次离散傅里叶变换都可以用快速算法求得,若M和N都是2的幂,则可使用基二FFT算法,所需要乘法次数为                                    

 

而直接计算二维离散傅里叶变换所需的乘法次数为(M+N)MN,当M和N比较大时用用FFT运算,可节约很多运算量。

1.3图像傅里叶变换的物理意义

图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度。如:大面积的沙漠在图像中是一片灰度变化缓慢的区域,对应的频率值很低;而对于地表属性变换剧烈的边缘区域在图像中是一片灰度变化剧烈的区域,对应的频率值较高。傅里叶变换在实际中有非常明显的物理意义,设f是一个能量有限的模拟信号,则其傅里叶变换就表示f的频谱。从纯粹的数学意义上看,傅里叶变换是将一个函数转换为一系列周期函数来处理的。从物理效果看,傅里叶变换是将图像从空间域转换到频率域,其逆变换是将图像从频率域转换到空间域。换句话说,傅里叶变换的物理意义是将图像的灰度分布函数变换为图像的频率分布函数。

傅里叶逆变换是将图像的频率分布函数变换为灰度分布函数傅里叶变换以前,图像(未压缩的位图)是由对在连续空间(现实空间)上的采样得到一系列点的集合,通常用一个二维矩阵表示空间上各点,记为z=f(x,y)。又因空间是三维的,图像是二维的,因此空间中物体在另一个维度上的关系就必须由梯度来表示,这样我们才能通过观察图像得知物体在三维空间中的对应关系。

傅里叶频谱图上我们看到的明暗不一的亮点,其意义是指图像上某一点与邻域点差异的强弱,即梯度的大小,也即该点的频率的大小(可以这么理解,图像中的低频部分指低梯度的点,高频部分相反)。一般来讲,梯度大则该点的亮度强,否则该点亮度弱。这样通过观察傅里叶变换后的频谱图,也叫功率图,我们就可以直观地看出图像的能量分布:如果频谱图中暗的点数更多,那么实际图像是比较柔和的(因为各点与邻域差异都不大,梯度相对较小);反之,如果频谱图中亮的点数多,那么实际图像一定是尖锐的、边界分明且边界两边像素差异较大的。

对频谱移频到原点以后,可以看出图像的频率分布是以原点为圆心,对称分布的。将频谱移频到圆心除了可以清晰地看出图像频率分布以外,还有一个好处,它可以分离出有周期性规律的干扰信号,比如正弦干扰。一幅频谱图如果带有正弦干扰,移频到原点上就可以看出,除了中心以外还存在以另一点为中心、对称分布的亮点集合,这个集合就是干扰噪音产生的。这时可以很直观的通过在该位置放置带阻滤波器消除干扰。

2.二维傅里叶变换有哪些性质?

2.1二维离散傅里叶变换的性质

1)分离性

二维离散傅里叶变换具有分离性

  

分离性质的主要优点是可借助一系列一维傅里叶变换分两步求得。第1步,沿着的每一行取变换,将其结果乘以1/N,取得二维函数;第2步,沿着的每一列取变换,再将结果乘以1/N,就得到了。这种方法是先行后列。如果采用先列后行的顺序,其结果相同。

如图:


 

对逆变换f(x,y)也可以类似地分两步进行。

2)平移性

傅里叶变换和逆变换对的位移性质是指:

 

由乘以指数项并取其乘积的傅立叶变换,使频率平面的原点位移至。同样地,以指数项乘以并取其反变换,将空间域平面的原点位移至当N/2时,指数项为:

即为

这样,用(x+y)乘以就可以将的傅里叶变换原点移动到N*N频率方阵的中心,这样才能看到整个谱图。另外,对的平移不影响其傅里叶变换的幅值。

此外,与连续二维傅里叶变换一样,二维离散傅里叶变换也具有周期性共轭对称性、线性、旋转性、相关定理、卷积定理、比例性等性质。这些性质在分析及处理图像时有重要意义。

2.2二维离散傅里叶变换图像性质

1、图像经过二维傅里叶变换后,其变换系数矩阵具有如下性质:若变换矩阵原点设在中心,其频谱能量集中分布在变换系数短阵的中心附近(图中阴影区)。若所用的二维傅里叶变换矩阵的原点设在左上角,那么图像信号能量将集中在系数矩阵的四个角上。这是由二维傅里叶变换本身性质决定的。同时也表明一股图像能量集中低频区域。

2、图像灰度变化缓慢的区域,对应它变换后的低频分量部分;图像灰度呈阶跃变化的区域,对应变换后的高频分量部分。除颗粒噪音外,图像细节的边缘、轮廓处都是灰度变化突变区域,它们都具有变换后的高频分量特征。

 

3.任给一幅图像,对其进行二维傅里叶变换和逆变换

原图

二维傅里叶变换

逆变换

频谱图

原图

加入高斯躁声

加入椒盐躁声

 

对高斯躁声中值滤波

对椒盐躁声中值滤波

 

对高斯躁声算术均值滤波

对椒盐躁声算术均值滤波

 

4.附录

4.1matlab代码

1)程序一

复制代码

 1 [i,lcmp]=imread('F:/123.jpg');%=======读取图像 显示图像2 3 subplot(2,2,1),imshow(i,lcmp);4 5 title('original');6 7 ii=im2double(i); %=====将图像矩阵类型转换为double(图像计算很多是不能用整型的),没有这个会报错!! ,如果不用这个就必须转化为灰度图!8 9 i1 = fft2(ii); %======傅里叶变换
10 
11 i2 =fftshift(i1); %======将变换的频率图像四角移动到中心(原来良的部分在四角 现在移动中心,便于后面的处理)
12 
13 i3=log(abs(i2)); %=====显示中心低频部分,加对数是为了更好的显示
14 
15 subplot(2,2,2),imshow(i3,[]);
16 
17 title('Fourier');
18 
19 map=colormap(lcmp); %===取色谱
20 
21 imwrite(i3,map,'f:/ffttank.bmp'); %===将上面i3输入到ffttank文件中
22 
23 i5 = real(ifft2(ifftshift(i2))); %===频域的图反变换到空域 并取实部
24 
25 i6 = im2uint8(mat2gray(i5)); %===取其灰度图
26 
27 imwrite(i6,map,'f:/tank2.bmp','bmp'); %===利用灰度图和原来取得颜色模板 还原图像
28 
29 subplot(2,2,3),imshow(i6);
30 
31 title('anti-Fourier');
32 
33 i7=rgb2gray(i);
34 
35 i8=fft2(i7);%===对灰色图才能归一化。因为那是2维矩阵,彩色图是3维矩阵,需要转化为2维灰图
36 
37 m=fftshift(i8); %直流分量移到频谱中心
38 
39 %RR=real(m); %取傅立叶变换的实部
40 
41 %II=imag(m); %取傅立叶变换的虚部
42 
43 A=abs(m);%计算频谱幅值
44 
45 %A=sqrt(RR.^2+II.^2);
46 
47 A=(A-min(min(A)))/(max(max(A))-min(min(A)))*225; %归一化
48 
49 subplot(2,2,4),imshow(A); %显示原图像
50 
51 colorbar; %显示图像的颜色条
52 
53 title('FFT spectrum'); %图像命名
54 
55  

复制代码

 

 

2)程序二

复制代码

 1 m=imread('F:/123.jpg');2 3 M=rgb2gray(m); %==滤波函数都是对二维灰度图,Tif可直接滤波4 5 subplot(3,3,1)6 7 imshow(M);%显示原始图像8 9 title('original')
10 
11 P1=imnoise(M,'gaussian',0.02); %加入高斯躁声
12 
13 subplot(3,3,2)
14 
15 imshow(P1) %加入高斯躁声后显示图像
16 
17 title('gaussian noise');
18 
19 P2=imnoise(M,'salt & pepper',0.02); %=加入椒盐躁声
20 
21 subplot(3,3,3)
22 
23 imshow(P2) %%加入椒盐躁声后显示图像
24 
25 title('salt & pepper noise');
26 
27 g=medfilt2(P1); %对高斯躁声中值滤波
28 
29 subplot(3,3,5)
30 
31 imshow(g)
32 
33 title('medfilter gaussian')
34 
35 h=medfilt2(P2); %对椒盐躁声中值滤波
36 
37 subplot(3,3,6)
38 
39 imshow(h)
40 
41 title('medfilter salt & pepper noise')
42 
43 l=[1 1 1 %对高斯躁声算术均值滤波
44 
45 1 1 1
46 
47 1 1 1];
48 
49 l=l/9;
50 
51 k=conv2(P1,l);
52 
53 subplot(3,3,8)
54 
55 imshow(k,[])
56 
57 title('arithmeticfilter gaussian')
58 
59 %对椒盐躁声算术均值滤波
60 
61 d=conv2(P2,l);
62 
63 subplot(3,3,9)
64 
65 imshow(d,[])
66 
67 title('arithmeticfilter salt & pepper noise')
68 
69  

复制代码

 

4.2参考文献

[1]孟凡文, 吴禄慎.基于FTP的二维傅里叶变换的研究.激光与红外. 第38卷第9期 2008年9月       

[2] 董健,邓国辉,李金武. 基于二维傅里叶变换实现图像变换的研究. 福建电脑. 2015年第 9期

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/458159.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

求二叉树中两个节点的最远距离

问题定义如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义"距离"为两节点之间边的个数。写一个程序求一棵二叉树中相距最远的两个节点之间的距离。计算一个二叉树的最大距离有两个情况:情况A: 路径经过左子树的最深节…

Source Insight 4.0 最简单的破解安装

from:https://blog.csdn.net/biubiuibiu/article/details/78044232 三步完成Source Insight 4.0 破解安装 下载地址有更新,之前有朋友因潜在的版权问题封禁没下到,现在更新后可正常使用了。 文末有完全清除上次安装残留的方法,…

XML——XML介绍和基本语法

from:https://blog.csdn.net/gavin_john/article/details/51511180 1.XML历史 gml(1969)->sgml(1985)->html(1993)->xml(1998) 1969 gml(通用标记语言),主要目的是要在不同的机器之间进行通信的数据规范1985 sgml(标准通用标记语言)1993 htm…

Tomcat7.0安装配置

很久没有通过博客对学习所得进行记录了。 现在将使用Tomcat的一些经验和心得写到这里,作为记录和备忘。如果有朋友看到,也请不吝赐教。 首先,我个人使用的是apache-tomcat-7.0.27你可以下载使用,前提条件你需要安装JDK1.6或者1.7都…

TIFF图像文件格式详解

from:https://www.cnblogs.com/gywei/p/3393816.html 1 什么是TIFF? TIFF是Tagged Image File Format的缩写。在现在的标准中,只有TIFF存在, 其他的提法已经舍弃不用了。做为一种标记语言,TIFF与其他文件格式最大的不…

图像处理之积分图应用三(基于NCC快速相似度匹配算法)

from:https://blog.csdn.net/jia20003/article/details/53021614 图像处理之积分图应用三(基于NCC快速相似度匹配算法) 基于Normalized cross correlation(NCC)用来比较两幅图像的相似程度已经是一个常见的图像处理手段。在工业生产环节检测…

深入浅出地理解机器人手眼标定

from:https://blog.csdn.net/qq_16481211/article/details/79764730 所谓手眼系统,就是人眼镜看到一个东西的时候要让手去抓取,就需要大脑知道眼镜和手的坐标关系。如果把大脑比作B,把眼睛比作A,把手比作C,如果A和B的…

centos 6.5 安装 mongodb

官方给出的链接地址:https://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/ 安装后重要的日志 win10 上使用mongochef连接不上数据库 解决方案: 修改 /etc/mongod.conf 将bindIP 改为0.0.0.0 监听外网转载于:https://www.cnblogs.com/l…

opencv3/C++ 机器学习-SVM应用实例:药品(胶囊)识别与分类

from:https://blog.csdn.net/akadiao/article/details/79278072 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/akadiao/article/details/79278072 问题描述: 现对6种不同颜色药品(胶囊…

linux命令学习-1-less

less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less …

jspspy database help

.转载于:https://www.cnblogs.com/outline/p/5316051.html

SVM 调参策略

转自:SVM 调参策略:https://blog.csdn.net/u014484783/article/details/78220646 SVM 怎样能得到好的结果 1. 对数据做归一化(simple scaling) 2. 应用 RBF kernel 3. 用cross-validation和grid-search 得到最优的c和g 4. 用…

美好的⼀天 从ActionTab开始 美观、智能、⾼效的新标签⻚ iTab 新标签页iTab新标签页Atop100工具推荐

文章目录 ActionTabiTab 新标签页iTab新标签页,小组件,起始页,标签页,日历,股票,浏览器扩展 https://www.actiontab.cn/ ActionTab 收费???? iTab 新标签页iT…

机器学习中的算法(2)-支持向量机(SVM)基础

from:http://www.cnblogs.com/LeftNotEasy/archive/2011/05/18/2034566.html 版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系wheeleastgm…

Kinect深度图与摄像头RGB的标定与配准(转载文章)

作者原文地址:http://blog.csdn.net/aichipmunk/article/details/9264703 自从有了Kinect,根据深度图提取前景就非常方便了。因此出现了很多虚拟现实、视频融合等应用。但是,Kinect自身的RGB摄像头分辨率有限,清晰度也不及一些专业…

台北到淡水版Firefox无法播放视频

台北到淡水版的Firefox所有的视频都无法播放,禁用了各种插件也还是没法播放,最后才确定是SWF的问题,大家有同样问题的,可以下载我的放到SWF文件夹下,目录结构如下图: ​Firefox的SWF下载地址1 ​Firefox的S…

最详细、最完整的相机标定讲解

相机标定详解 最近做项目要用到标定,因为是小白,很多东西都不懂,于是查了一堆的博客,但没有一个博客能让我完全能看明白整个过程,绝大多数都讲的不全面,因此自己总结了一篇博客,给自己理一下思…

卷积与反卷积动图

各种卷积与反卷积动态图 反卷积: 详细文字链接:https://www.zhihu.com/question/43609045/answer/132235276(该链接中并没有下面的动态图) Deconvolution大致可以分为以下几个方面:(1)unsupervised learning,其实就…

ASP.NET-权限管理五张表

ASP.NET 权限管理五张表权限管理的表(5张表)每个表里面必有的一些信息序号名称 字段 类型 主键默认值是否为空备注1 用户ID ID INT 是 null 否用户ID2用户名称UserNamevarchar(100)否null否用户名称3用户密码UserPasswordvarchar(20)否null否用…

神经网络CNN解释

from:https://blog.csdn.net/ruiyiin/article/details/77113973 这篇文章原地址为An Intuitive Explanation of Convolutional Neural Networks,卷积神经网络的讲解非常通俗易懂。 什么是卷积神经网络?为什么它们很重要? 卷积神经…