图像处理开发需求、图像处理接私活挣零花钱,请加微信/QQ 2487872782
图像处理开发资料、图像处理技术交流请加QQ群,群号 271891601

代码如下,这个代码是实现灰度图像作二维傅里叶变换后的非线性变换哈~

clear all;
I=imread('coins.png');
F=fft2((im2double(I)));
F=fftshift(F);
F=abs(F);
T=log(F+1);

subplot(1,2,1);
imshow(F,[]);
title('未经变换的频谱');

subplot(1,2,2);
imshow(T,[]);
title('对数变换后');

下面对上面代码中体现的知识点进行说明:
1 F=fft2((im2double(I)));  作二维傅里叶变换前一定要先把用imread读到的数据原始图像的数据类型由uint8转化为double类型!
2 fftshift是对MATLAB作傅里叶变换后的数据的零频点移到频谱的中间,具体的作用你看下面的代码的运行结果即可:
代码下载链接:http://pan.baidu.com/s/1jIfGM2a 密码:iqxt
 
原信号是:
x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t);
可见,信号的频率是15Hz和40Hz,15Hz的幅度是0.5,40Hz的幅度是2,我们看到中间的那个蓝色频谱图,因为没有经过fftshift,那完全就是错的!所以为啥要用fftshift呢?根本原因就是MATLAB在作傅里叶变换时它没有负频率啊!它的频率范围是0到采样频率啊!具体到二维的图像傅里叶变换的意义可以参考下面这幅图:
 
3 F=abs(F); 这个模实际上就是欧拉距离,实际上就是根号下[(x1-x2)^2+(y1-y2)^2]!

4 imshow(F,[]);如果F是二维矩阵,则显示的是灰度或二值图像,后面的参数[]在这里是必须要的,加上的话会对数据做归一化处理再显示,如果不作这个处理的话,你想,如果数据跨度比较大,那么有很多数据都是超过255的,那么最后的结果就是整个图片的大部分范为都是白的,你可以想像一下,其实是很容易想到的!

图像处理开发需求、图像处理接私活挣零花钱,请加微信/QQ 2487872782
图像处理开发资料、图像处理技术交流请加QQ群,群号 271891601

MATLAB作二维傅里叶变换所需要注意和知道的东西(im2double、fft2、abs、imshow、二维傅里叶变换的物理意义)相关推荐

  1. 图像的傅里叶变换,二维傅里叶变换的物理意义

    从现代数学的眼光来看,傅里叶变换是一种特殊的积分变换.它能将满足一定条件的某个函数表示成正弦基函数的线性组合或者积分.在不同的研究领域,傅里叶变换具有多种不同的变体形式,如连续傅里叶变换和离散傅里叶变 ...

  2. 《MATLAB智能算法30个案例》:第23章 基于蚁群算法的二维路径规划算法

    <MATLAB智能算法30个案例>:第23章 基于蚁群算法的二维路径规划算法 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法30个案例分析& ...

  3. matlab 定义张量,如何使用MATLAB作张量运算

    2012年第05期 吉林省教育学院学报 No.05,2012 第28卷JOURNAL OF EDUCATIONAL INSTITUTE OF JILIN PROVINCE Vol .28(总293期) ...

  4. php 二维数组字段合并,PHP将二维数组某一个字段相同的数组合并起来的方法,二维数组数组_PHP教程...

    PHP将二维数组某一个字段相同的数组合并起来的方法,二维数组数组 本文实例讲述了PHP将二维数组某一个字段相同的数组合并起来的方法.分享给大家供大家参考,具体如下: 例子: array(3) { [0 ...

  5. Java黑皮书课后题第8章:*8.16(对二维数组排序)编写一个方法,使用下面的方法头对二维数组排序。这个方法首先按行排序,然后按列排序

    *8.16(对二维数组排序)编写一个方法,使用下面的方法头对二维数组排序.这个方法首先按行排序,然后按列排序 题目 题目描述 破题 代码 运行实例 题目 题目描述 *8.16(对二维数组排序)编写一个 ...

  6. 二维数组:随机生产,遍历,判断两个数组一维二维长度,和内容是否一致

    import java.util.Random;/*** 1,定义第一个方法,传入数组长度,返回一个1维和2维长度都完全相同的数组* 2.定义一个方法,传入两个数二维组,判断两个数组是否完全一致:一维 ...

  7. uniapp中根据URL链接生成二维码(适用所有Javascript运行环境的前端应用),保存二维码到本地相册。

    推荐一款适用所有Javascript运行环境的二维码生成组件. uQRCode是一款基于Javascript环境开发的二维码生成插件,适用所有Javascript运行环境的前端应用和Node.js应用 ...

  8. TP5使用二维码PHP QR Code生成带LOGO和不带LOGO的二维码

    TP5使用二维码PHP QR Code生成带LOGO和不带LOGO的二维码 1.下载二维码插件Phpqrcode,地址 https://sourceforge.net/projects/phpqrco ...

  9. 计算机网络应用二维动画,【单选题】二维动画属于计算机动画系统的第______级。 A. 一 B. 二 C. 三 D. 四...

    [单选题]二维动画属于计算机动画系统的第______级. A. 一 B. 二 C. 三 D. 四 更多相关问题 [单选] 包气带自上而下可分为().中间带和毛细水带. [单选] 据地下水流动状态,地下 ...

最新文章

  1. hdu 1043 Eight 搜索,哈希
  2. Qt+MinGW+OpenCV开发环境在win7系统下的搭建(最新20140423)
  3. LNMP架构之环境搭建
  4. hough变换检测圆周_【视觉】视觉检测人应该了解的缺陷检测方法
  5. 增加数据库控制文件命令
  6. js define函数_聊聊JS模块化发展历程
  7. JAVA进阶教学之(8种包装类)
  8. ByWater Solutions支持在图书馆中使用开源
  9. 【报告分享】2020直播电商生态白皮书.pdf(附下载链接)
  10. 如何成为合格的数据分析师
  11. centos安装Gitlab Runner
  12. 开启进程的两种方式:类、函数
  13. 用proxifier、ccproxy、teamviewer做网络代理
  14. 迪赛智慧数——折线图(渐变堆叠图):国内智能快递柜营收规模及增长率
  15. Xbox 360抢鲜测评
  16. C++部分函数调用形式耗时测试
  17. 电子类专业毕业后到底是做什么的??挺有意义的
  18. 软件需求工程 课堂笔记8
  19. 软件测试是什么?具体的工作内容是什么?有前途吗?
  20. Andrew Ng ML课程总结(一)

热门文章

  1. python matplotlib散点图-python-Matplotlib散点图图例
  2. python爬虫requests-Python爬虫(三)Requests库
  3. 怎样才算熟悉python-终于找到python怎么才算入门
  4. python下载word文件-python-docx操作word文件(*.docx)
  5. 学python需要学数据库吗-python可以使用什么数据库
  6. python安卓版下载安装-python手册中文版apk下载
  7. python3.8.5怎么用-python3.8 五分钟就可以入门
  8. 不懂编程可以自学python吗-关于大学小白如何学习Python语言程序设计
  9. python网课一般多少钱-排名前十的python零基础编程在线网课一对一费用多少钱
  10. pythonista安卓版下载-pythonista 3ios