matlab 画图像频谱图

  • 需要注意的地方
    • 图像格式
    • 代码
      • 处理单个图像
      • 批量处理

需要注意的地方

图像格式

  1. JPG: 有损压缩,24bit真彩色,不支持动画,不支持透明色。
  2. PNG 无损压缩,PNG格式有8bit,24bit,32bit三种形式,32位PNG在24位基础上增加了8位透明通道,因此可展现256级透明度;
  3. BMP ,是一种与硬件格式无关的图像文件格式,适用非常广;无压缩,因此所占用的空间很大;
  4. 频谱图与图像格式有关,一般需要先将彩色图转换为灰度图,然后再做傅里叶变换。

im2gray() 作用:将彩色图或灰度图转换为灰度图

代码

处理单个图像

img = imread("Homework+1\1.png");
% 用来将彩色图转换为灰图,因为彩色图的数值比起灰度图处理起来非常不方便
img=im2gray(img);
% FFT
f = fft2(img);
% FFT频谱中心化
f = fftshift(f);
% magnitude
mag = abs(f);
% phase
phase = angle(f);
% plot
% 参数'[]'是为了将其值线性拉伸,log是为了更好显示图,加1是为了让图更亮(将所有值映射为正数)
% 对数转换的目的:经过log(X)变换后会变成负数,而log(X+1)则将所有的x值,映射成正数,数值范围也更小一些。
subplot(311);imshow(img);title("Original image");axis on;
subplot(312);imshow(log(mag+1),[]);title("Magnitude spectrum");axis on;
subplot(313);imshow(phase,[]);title("Phase spectrum");axis on;

批量处理

clc;close all;
dir_path = '\';
img_list = dir(dir_path);
% matlab读取文件夹下的文件时,前两个是空文件
for i=3:length(img_list)% 带后缀的文件名img_name = img_list(i).name;% 不带后缀的文件名,用于保存文件point = strfind(img_name,'.');name = img_name(1:point-1);% read imageoriginal_img = imread(strcat(dir_path,img_name));% 将图像转换为灰度图img = im2gray(original_img);% FFTf = fft2(img);% FFT频谱中心化f = fftshift(f);% magnitudemag = abs(f);% phasephase = angle(f);% plot% 参数'[]'是为了将其值线性拉伸,log是为了更好显示图,加1是为了让图更亮(将所有值映射为正数)figure(1)subplot(131);imshow(original_img,[]);title('Original image');axis on;subplot(132);imshow(log(mag+1),[]);title('Magnitude spectrum');axis on;subplot(133);imshow(phase,[]);title('Phase spectrum');axis on;saveas(gcf,strcat('result\',name),'jpg');
end

matlab 画图像频谱图相关推荐

  1. matlab高斯白噪声频谱图,如何用MATLAB产生高斯白噪声,并且画出图形?

    如何用MATLAB产生高斯白噪声,并且画出图形? 来源:互联网  宽屏版  评论 2009-06-19 02:34:10 分类: 电脑/网络 >> 程序设计 >> 其他编程语言 ...

  2. matlab fft画频谱图,matlab 用 fft画频谱

    matlab 用 fft画频谱 关注:193  答案:2  手机版 解决时间 2021-01-19 14:14 提问者挥映在沉默里的渲染 2021-01-18 18:27 在这样一段程序中 clear ...

  3. matlab对图像频谱图分析,应用Matlab对图像信号进行频谱分析及滤波

    应用Matlab对图像信号进行频谱分析及滤波 选取一张彩色图片,建议把像素设置成200*200,提取图像的灰度值,并显示出灰度图像:在图像中增加正弦噪声信号(自己设置几个频率的正弦信号),画出加入噪声 ...

  4. Matlab画图并在图中标记数据点

    代码: x = linspace(0,10); y = sin(x); hold on plot(x,y); stem(0.5*pi,1,'--',"Marker",'.');%画 ...

  5. 【共振峰跟踪】通过平均不同分辨率的方法跟踪共振峰,基于时频lpc的频谱图的MATLAB仿真

    1.软件版本 MATLAB2021a 2.本算法理论知识 通过平均不同分辨率的方法跟踪共振峰,基于时频lpc的频谱图.此外,它还决定了语音信号的基音轮廓. 3.核心代码 function [fmap, ...

  6. 2021-02-28 Matlab绘制短时傅里叶变换的频谱图和时间-频率-幅值三维图

    Matlab绘制短时傅里叶变换的频谱图和时间-频率-幅值三维图 function [t,frequency,f_spectrum]=fft_s(y,windowlength,Fs) % 输入 : % ...

  7. 2021-01-20 Matlab画图技巧与实例:堆叠图stackedplot

    Matlab画图技巧与实例:堆叠图stackedplot 在MATLAB线图中,一共有3种类型,分别是 线图,包括:plot,plot3,stairs,errorbar,area,stackedplo ...

  8. 解决Matlab画图直接保存.eps格式而导致图不全的问题

    解决Matlab画图直接保存.eps格式而导致图不全的问题 参考文章: (1)解决Matlab画图直接保存.eps格式而导致图不全的问题 (2)https://www.cnblogs.com/Garf ...

  9. matlab相关性分析频谱_利用Matlab绘制正弦信号的频谱图并做相关分析[共6页]

    <利用Matlab绘制正弦信号的频谱图并做相关分析[共6页]>由会员分享,可在线阅读,更多相关<利用Matlab绘制正弦信号的频谱图并做相关分析[共6页](6页珍藏版)>请在人 ...

最新文章

  1. oracle sap 用友 保险财务系统比较,SAP和用友的财务管理系统比较详解
  2. NSTimer用法,暂停,继续,初始化
  3. 爬虫-基于bs4库的HTML内容查找方法
  4. java-模拟存放String类型数据的栈
  5. 本博客弃用,请移步http://ningios.com查看最新
  6. C# 使用Timer控件设置时间间隔
  7. 切割 字符串_web前端如何使用字符串
  8. OpenCV2.4.5在13-04的配置过程
  9. 基于visual Studio2013解决C语言竞赛题之1071打印工资
  10. android audiotrack mp3,播放mp3数据压缩由JLayer和Audiotrack latin mp3在android
  11. Android UI 自定义控件大全
  12. MetaMask账号注册
  13. Set Similarity
  14. linux内核就是外包公司老板
  15. Linux命令之帮助手册
  16. 普通磨削、超声辅助磨削表面形貌代码及表面轮廓提取
  17. 三个或多个蛋白质结构的比对
  18. python爬取海量精美高清漂酿纯真可爱善良小姐姐壁纸(老司机福利)
  19. Camera Sensor
  20. STC12C5A60S2单片机WIFI信号扫描报警监视系统信号增强信号过低报警

热门文章

  1. 互联网金融风控面试业务知识
  2. 【Java基础】多态、equals、造型cast、访问修饰符(public、protected、default、private)、static、final
  3. 小狼-Windows10将默认输入法删除掉,只留一个输入法
  4. 七把利器助你打造充满竞争力的商业模式
  5. 日本品牌山地车java_2018“JAVA(佳沃)杯”第九届凤凰山山地自行车挑战赛在深圳举行...
  6. 董事长职责范围是什么
  7. 高级信息系统项目管理——十大知识领域五大过程组
  8. 零伽壹|多地印发涵盖区块链技术的发展实施意见
  9. self-attention is all you need(二)
  10. 查理·芒格推荐的投资人必读书单