原文:http://blog.csdn.net/xiaofengsheng/article/details/5991680

傅里叶变换的Matlab代码:

img=imread('e:/4.jpg');  subplot(2,2,1),imshow(img);  f=rgb2gray(img);  subplot(2,2,2),imshow(f);  %二维傅里叶变换  F=fft2(f);  FS=fftshift(F);  %频谱  S=log(1+abs(FS));  subplot(2,2,3);imshow(S,[]);  %% 二维傅里叶逆变换  fr=real(ifft2(ifftshift(FS)));  ret=im2uint8(mat2gray(fr));  subplot(2,2,4),imshow(ret);  

所参考的程序:

[i,lcmp]=imread('f:/tank.bmp');%=======读取图像 显示图像  imshow(i,lcmp);              ii=im2double(i);                   %=====将图像矩阵类型转换为double(图像计算很多是不能用整型的)  i1 = fft2(ii);                         %======傅里叶变换  i2 =fftshift(i1);                      %======将变换的频率图像四角移动到中心(原来良的部分在四角 现在移动中心,便于后面的处理)  i3=log(abs(i2));                  %=====显示中心低频部分,加对数是为了更好的显示  程序一  figure,imshow(i3,[]);               colormap(lcmp);  imwrite(i3,lcmp,'f:/ffttank.bmp');  %===将上面i3输入到ffttank文件中  i5 = real(ifft2(ifftshift(i2)));            %===频域的图反变换到空域 并取实部  i6 = im2uint8(mat2gray(i5));         %===取其灰度图  imwrite(i6,lcmp,'f:/tank2.bmp','bmp');  %===利用灰度图和原来取得颜色模板 还原图像  figure,imshow(i6);  title('反变换后的图像');  程序二  RGB = imread('autumn.tif');      %===读取图像  I = rgb2gray(RGB);                  %==将其转为灰度  imshow(I);  J = dct2(I);                          %==二维dct变换,即离散余弦变换,  figure,imshow(log(abs(J)),[])  %==显示出变换后的图像,此时能量集中在左上角  colormap(jet(64)), colorbar    %====建立颜色模板  figure;  J(abs(J) < 10) = 0;               %==我理解为:因为dct变换只要保存左上角的低频小块就可以保持原图像信息,故其他部分(高频,其能量较小故值也小)就可以舍去  K = idct2(J)/255;                        %===这不加255,将下句改成imshow(K,[]);也一样,只是显示的需要  imshow(K);  title('反变换后的图像');  M=imread('dl011.jpg')         %读取MATLAB中的名为cameraman的图像     subplot(3,3,1)   imshow(M)                         %显示原始图像  title('original')  P1=imnoise(M,'gaussian',0.02)     %加入高斯躁声   subplot(3,3,2)   imshow(P1)                        %加入高斯躁声后显示图像   title('gaussian noise');  P2=imnoise(M,'salt & pepper',0.02) %加入椒盐躁声  subplot(3,3,3)  imshow(P2)                        %%加入椒盐躁声后显示图像    title('salt & pepper noise');  g=medfilt2(P1)                       %对高斯躁声中值滤波  subplot(3,3,5)  imshow(g)  title('medfilter gaussian')  h=medfilt2(P2)                       %对椒盐躁声中值滤波  subplot(3,3,6)  imshow(h)  title('medfilter salt & pepper noise')  l=[1 1 1                               %对高斯躁声算术均值滤波  1 1 1   1 1 1];   l=l/9;                             k=conv2(P1,l)                          subplot(3,3,8)  imshow(k,[])  title('arithmeticfilter gaussian')  %对椒盐躁声算术均值滤波  d=conv2(P2,l)                          subplot(3,3,9)  imshow(d,[])  title('arithmeticfilter salt & pepper noise')  

傅里叶变换的Matlab代码相关推荐

  1. 离散傅里叶变换及matlab实现(按时间抽选(DIT)的基-2 FFT算法(库利-图基算法))

    转,傅里叶变换,很好的解释 很好的文章,可惜水平太差,还没有完全理解. 快速傅里叶的matlab实现 按时间抽选(DIT)的基-2 FFT算法(库利-图基算法) 傅里叶要用到的nn个复数,不是随机找的 ...

  2. 数字图像处理频域滤波实现低通与高通滤波(包含matlab代码)

    低通滤波器 理想低通滤波 作用:保留频谱图中圆内低频分量,截断频谱图中圆外高频分量 函数表示: 假设频谱中心在 (M/2,N/2)处,则任意频谱成分(u,v) 到中心(原点)的距离D(u,v) 定义为 ...

  3. 快速傅里叶变换及python代码实现

    文章来源:https://www.cnblogs.com/LXP-Never/p/11558302.html 快速傅里叶变换及python代码实现 目录 一.前言   傅里叶变换相关函数   基于傅里 ...

  4. 傅里叶描述子、HOG特征描述子原理及matlab代码

    一.傅里叶描述子 傅里叶描述子的作用是用来描述图像的轮廓信息,具有平移.旋转.尺度不变性特征. 对于一幅图像,通过傅里叶描述子获得其图像轮廓信息,其本质就是空间.频域变换问题.通过将图像中的像素点进行 ...

  5. 11种图像清晰度评价函数附MATLAB代码

    本科毕业论文"基于图像处理的自动对焦技术研究",对焦过程中的一个重要阶段是图像清晰度评价,我用MATLAB实现了4类清晰度评价函数:基于图像梯度的清晰度评价函数.频域评价函数.信息 ...

  6. matlab函数 无限冲激响应滤波器,MATLAB代码 有限冲激响应(FIR)滤波器和无限冲激响应(IIR)滤波器...

    MATLAB有限冲激响应(FIR)滤波器和无限冲激响应(IIR)滤波器设计 附MATLAB代码 摘要 文章设计了一个数字信号处理仿真实验,产生一个信号,其频率成分为f1和f2,并对其进行理想采样,采样 ...

  7. 数字水印进阶篇——基于DWT-SVD的数字水印(附matlab代码)

    引言 之前写过一篇介绍空间域LSB的数字水印算法,有需要的朋友可以看看 数字水印入门篇--空间域LSB的数字水印(附matlab代码) 因空间域的数字水印是通过直接在图像上改变像素的方式来隐藏水印信息 ...

  8. SAR成像系列:【8】合成孔径雷达(SAR)成像算法-压缩感知(Compressed Sensing,CS)成像算法(附Matlab代码)

    压缩感知(Compressed Sensing,CS)该理论指出:对于满足约束等距条件(Restricted Isometry Property,RIP)的稀疏或可压缩信号,通过低于(甚至远低于)Ny ...

  9. 单频信号的相位谱计算与误差修正-附Matlab代码

    一.问题描述 我们在实际处理时经常遇到只有一个正弦信号的情况,其频率为 f 0 {{f}_{0}} f0​,在谱分析以后,除了在频率为 f 0 {{f}_{0}} f0​处有相位数值外,其他频率处都有 ...

最新文章

  1. dubbo入门学习笔记之入门demo(基于普通maven项目)
  2. UVA - 1346 Songs (贪心+排序)
  3. linux进程接受信号,linux – 一个进程如何知道它已经收到一个信号
  4. 编程之美-24点游戏方法整理
  5. 用Windows组件库文件快速部署Visual C
  6. 10g中如何修改数据库字符集-2
  7. C++ opengl 点光源
  8. Java集合性能分析-疯狂Java讲义
  9. hutool的定时任务不支持依赖注入怎么办_可调度定时任务在SpringBoot中的实践
  10. Kubernetes RBAC 详解
  11. 重磅!吴恩达新书《机器学习训练秘籍》中文版来了(附PDF下载)
  12. android 播放器 exoplayer hls 播放widevine视频
  13. 关于在Ubuntu中更新pip时遇到的问题及解决方法
  14. 使用 snapseed p 图,图片局部黑白,简单实用!!
  15. 学大伟业 国庆Day2
  16. 研究发现:“帽子”越多越高的教师,对研究生越没有用
  17. 背景图片与图片对盒子的影响
  18. Win11设置notepad++为默认文件打开方式
  19. #瑞波#W底部启动,币须反弹一波!
  20. java单例模式的应用场景_单例模式的常见应用场景

热门文章

  1. GPU深度发掘(一)::GPGPU数学基础教程
  2. 怎么在Linux中telnet服务器,怎么利用Telnet连接Linux服务器
  3. delete什么头文件C语言,C++中new和delete的介绍
  4. python训练数据集_python – 如何训练大型数据集进行分类
  5. python异常值处理实例_Python异常值处理与检测
  6. 小帅小胖智能机器人价格_“高科技”开学第一课,小胖机器人老师又“红”了...
  7. git服务器安装位置,Linux服务器安装gitlabe-runner,并部署包到指定目录,还有踩的一些坑~~...
  8. php数组的奇数_用php输出一个数组中的偶数或奇数的方法
  9. linux 不接显示器不启动_不知道这十项Linux常识,就别说自己玩过Linux
  10. 服务发布或重启,发生抖动怎么办?