文章目录

  • 前言
  • 一、lena图片的傅里叶(反)变换
  • 二、令相位为0进行傅里叶反变换
  • 三、令振幅为1进行傅里叶反变换
  • 四、双谱重构
  • 五、旋转90度观察频谱图区别

前言

傅立叶变换之后的正弦信号每个点都是复数,如a+bi

幅值是:根号下a平方+b平方

相位是:arctan(b/a)

实部是:a

虚步是:b

幅度和相位结合在一起,就能完全表示傅立叶变换的结果;实部和虚步结合在一起也能完全表示。但是并不是说相位等于虚部。

频谱图:频域和幅值图像&频域和相位图像统称频谱图

一、lena图片的傅里叶(反)变换

imA = imread('E:\matlab DMP\lenaG.bmp');
FA=fft2(imA);%对图像进行傅里叶变换fA=fftshift(FA); %对图像频谱进行移动,是0频率点在中心sA=log(abs(fA));%获得傅里叶变换的幅度谱phA=log(angle(fA)*180/pi);%获得傅里叶变换的相位谱subplot(1,2,1);
imshow(sA,[]); %显示图像的度谱,参数与[]是为了将sA的值线形拉伸
title('图像A的傅里叶变换幅度谱');
subplot(1,2,2);
imshow(phA,[]); %显示图像傅里叶变换的相位谱
title('图像A傅里叶变换的相位谱');A=ifft2(FA);%傅里叶反变换figure
subplot(1,2,1);
imshow(imA,[]);
title('原图像');
subplot(1,2,2);
imshow(A,[]);
title('傅里叶反变换的到的图像');

在傅里叶变换中:相位谱记录的位置信息和幅度谱记录的亮度信息
结果如下

二、令相位为0进行傅里叶反变换

R = real(FA);
I = imag(FA);
figure;
subplot(2,2,1),imshow(R),title('real');
subplot(2,2,2),imshow(I),title('imaginary');
subplot(2,2,3),imshow(imA,[]),title('orrginal');
subplot(2,2,4),imshow(ifft(R),[]),title('phase=0');

结果:

图像的幅度谱代表的是图像各像素点的亮度信息,即该像素应该显示什么颜色,但是做出来的幅度谱却不知道每一点在原图像中具体是哪一点,即幅度谱虽然存储了各个像素点的幅值信息,但是原像素点的位置已经被打乱,所以仅凭幅度谱是没有办法重构原图像的。幅度谱的中心是低频部分,越亮的地方代表的幅度越大。


三、令振幅为1进行傅里叶反变换

Picture_AM_Spectrum = log(abs(fA));%获得傅里叶变换的幅度谱
Picture_Phase_Specture = log(angle(fA)*180/pi);%获得傅里叶变换的相位谱
Picture_Restructure = ifft2(1.*exp(j*(angle(FA))));%Set all pixels in the amplitude of the Fourier transform of the original image to unity
figure
subplot(221),imshow(Picture_AM_Spectrum,[]),title('amplitude');
subplot(222),imshow(Picture_Phase_Specture,[]),title('phase');
subplot(223),imshow(imA,[]),title('orginal picture');
subplot(224),imshow(Picture_Restructure,[]),title('amplitude=unity');

结果:

而相位谱记录的是所有点的相位信息,看起来相位谱是一团噪声,这也说明相位信息是以一种更为隐蔽的方式出现在人们面前的,但它非常重要,因为相位信息中携带者图像的位置信息,没有它将无法从品频谱还原出原图像。

四、双谱重构

Picture_Restructure = ifft2(abs(FA).*exp(j*(angle(FA))));

利用相位谱记录的位置信息和幅度谱记录的亮度信息,就可以用双谱重构的方法恢复出原图像。

其结果与ifft2结果完全相同。

五、旋转90度观察频谱图区别

旋转前:

旋转后:

可以发现旋转后的图片,频谱图都发生改变。

分析:幅度谱中“十”字形亮线表示原图像中水平和垂直方向的分量较其他方向要多,旋转改变了分量的方向,所以幅谱图发生改变;旋转也改变了位置信息,所以相谱图也会改变。

lena图片傅里叶(反)变换,频谱图,双谱重构和旋转相关推荐

  1. 图像傅里叶变换的幅度谱、相位谱以及双谱重构原图像

    简单的求取下灰度图像的幅度谱和相位谱并进行双谱重构: 直接上代码: clear all Picture = imread('E:\others\Picture\Library.jpg');Pictur ...

  2. FFT变换频谱图中幅值的设置方法

    按照上篇博文所画出来的频谱图中,原信号的每个频率是准确地找出来了,但是各个频率点所对应的的幅值可不是原信号中真正的幅值,因为在进行DFT(FFT)变换的时候,已经把幅值改变了,要想让频谱图的纵坐标显示 ...

  3. FFT变换频谱图中频率刻度的设置方法

    看到matlab中关于fft变换的几行代码,总想把它们几行语句搞清楚,看了许多,还是有些搞不清楚,可能需要更多的知识才能把它们彻底搞懂吧. 先来看一个简单的画频谱图的代码吧: clear all fs ...

  4. MATLAB信号处理——分解信号,双谱重构

    编程分析幅度谱和相位谱在图像信号.语音信号中的作用. 一.图像信号 (1)原图像信号如下: 代码如下: PA0=imread('大头儿子.jpg'); PB0=imread('狗.jpg'); PC0 ...

  5. 使用matlab读取图像并通过matlab自带的fft2,fftshift,ifftshift,ifft2等函数获取该图像的傅里叶频谱图,幅度图,相位谱图,幅度图,相位谱图,幅度谱重建图以及相位谱重建

    %% 读取图像.预处理 Picture1 = imread('Cameraman.tif');tryPicture1=rgb2gray(Picture1); % 如果是RGB图像,转成灰度图 catc ...

  6. 图像傅里叶变换:从空域转换到频域(包含频谱图分析、简单带阻滤波器理解)

    2021年10月21日10:24:05 占坑,这周五图像处理课讲完PPT后填. 2021年10月22日21:07:55 -> 讲课完毕 数字图像处理.图像恢复,噪声去除PPT 图像处理课课件,包 ...

  7. 【信号与系统】如何得到原始图片的频谱图?(Matlab)

    图像处理是指对图像进行分析.加工.和处理,使其满足视觉.心理或其他要求的技术.图像处理是信号处理在图像领域上的一个应用.目前大多数的图像均是以数字形式存储,因而图像处理很多情况下指数字图像处理.此外, ...

  8. 信号处理趣学D8——关于拉氏变换和频谱图的那些事儿

    最近小虎在网课上被老师问到编程写出一指数函数y=Ae−aty=Ae^{-at}y=Ae−at的频谱图,当时鼓捣了1个多钟???以前是画过bode图,bode的幅频图是对数幅频图.应该也可以用伯德图直接 ...

  9. (附Matlab程序)(一)基于DCT编码的图像压缩:显示灰度图像 反余弦变换恢复图 DCT变换图 余弦变换系数图

    问题一:随机选取一整幅图像(命名"x.jpg"),编写Matlab程序显示灰度图像.反余弦变换恢复图.DCT变换图.余弦变换系数图,并与原始图像对比. clcclearclose ...

  10. VMD分解,matlab代码,包络线,包络谱,中心频率,峭度值,能量熵,近似熵,包络熵,频谱图,希尔伯特变换,包含所有程序MATLAB代码,-西储大学数据集为例

    目录 1.选取数据 2.VMD函数-matlab代码 3.采用matlab脚本导入数据并做VMD分解 4. VMD分解图 5.计算中心频率 6.画包络线 7. 画包络谱 8. 计算峭度值 9.计算能量 ...

最新文章

  1. R语言layout函数处理可视化图像布局实战
  2. c语言中非法使用void类型_C语言中的数据类型
  3. 使用 Eigen 库写第一个程序
  4. NIO详解(三):IO多路复用模型之select、poll、epoll
  5. html load方法的区别,jQuery  中的.load()、$get()、$,post()用法和区别
  6. 学计算机专业需要买电脑么,上大学该买电脑吗?学长:买的时候以为是刚需,买了变成“鸡肋”...
  7. 16 个 Linux 服务器监控命令和watch
  8. EleutherAI:当OpenAI不够开放时,我们该如何选择?
  9. 时间紧任务重---extjs的学习就这么开始吧
  10. (3)插入排序之一 直接插入排序
  11. 数据结构知识点大汇总(四)
  12. c语言冒泡排序算法解析
  13. QGIS安装与使用教程
  14. Halcon学习---毛刺凸点检测
  15. python编写程序实现货币转换_使用Tkinter的Python实时货币转换器
  16. 架设Wikipedia的本地镜像(Linux联盟收集整理)
  17. c:forEach--------------JSTL
  18. ie浏览器的html在哪里,windows10的ie在哪里?ie浏览器找不到怎么办
  19. tensorflow导入自己的数据集
  20. SQL查询中的模糊匹配

热门文章

  1. c语言通讯录程序设计个人感言,C语言学习感悟(1)
  2. 目标检测的图像特征提取之LBP特征
  3. 一、软件测试概念和理论
  4. 2022年Java秋招面试必看的 | 微服务面试题
  5. 智能小车52单片机c语言,基于STC89C52单片机的智能循迹小车设计
  6. 高级与低级编程语言的解释,哪一种更容易上手?
  7. 方便好用的论文管理软件EndNote X9 + PDF阅读编辑器Adobe Acrobat DC(2)
  8. 群的概念,双线性映射
  9. python车辆型号识别_基于Tensorflow的车辆检测和车型识别
  10. 社交网络影响力最大化基础知识总结