matlab 画图像频谱图
matlab 画图像频谱图
- 需要注意的地方
- 图像格式
- 代码
- 处理单个图像
- 批量处理
需要注意的地方
图像格式
- JPG: 有损压缩,24bit真彩色,不支持动画,不支持透明色。
- PNG 无损压缩,PNG格式有8bit,24bit,32bit三种形式,32位PNG在24位基础上增加了8位透明通道,因此可展现256级透明度;
- BMP ,是一种与硬件格式无关的图像文件格式,适用非常广;无压缩,因此所占用的空间很大;
- 频谱图与图像格式有关,一般需要先将彩色图转换为灰度图,然后再做傅里叶变换。
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 画图像频谱图相关推荐
- matlab高斯白噪声频谱图,如何用MATLAB产生高斯白噪声,并且画出图形?
如何用MATLAB产生高斯白噪声,并且画出图形? 来源:互联网 宽屏版 评论 2009-06-19 02:34:10 分类: 电脑/网络 >> 程序设计 >> 其他编程语言 ...
- matlab fft画频谱图,matlab 用 fft画频谱
matlab 用 fft画频谱 关注:193 答案:2 手机版 解决时间 2021-01-19 14:14 提问者挥映在沉默里的渲染 2021-01-18 18:27 在这样一段程序中 clear ...
- matlab对图像频谱图分析,应用Matlab对图像信号进行频谱分析及滤波
应用Matlab对图像信号进行频谱分析及滤波 选取一张彩色图片,建议把像素设置成200*200,提取图像的灰度值,并显示出灰度图像:在图像中增加正弦噪声信号(自己设置几个频率的正弦信号),画出加入噪声 ...
- Matlab画图并在图中标记数据点
代码: x = linspace(0,10); y = sin(x); hold on plot(x,y); stem(0.5*pi,1,'--',"Marker",'.');%画 ...
- 【共振峰跟踪】通过平均不同分辨率的方法跟踪共振峰,基于时频lpc的频谱图的MATLAB仿真
1.软件版本 MATLAB2021a 2.本算法理论知识 通过平均不同分辨率的方法跟踪共振峰,基于时频lpc的频谱图.此外,它还决定了语音信号的基音轮廓. 3.核心代码 function [fmap, ...
- 2021-02-28 Matlab绘制短时傅里叶变换的频谱图和时间-频率-幅值三维图
Matlab绘制短时傅里叶变换的频谱图和时间-频率-幅值三维图 function [t,frequency,f_spectrum]=fft_s(y,windowlength,Fs) % 输入 : % ...
- 2021-01-20 Matlab画图技巧与实例:堆叠图stackedplot
Matlab画图技巧与实例:堆叠图stackedplot 在MATLAB线图中,一共有3种类型,分别是 线图,包括:plot,plot3,stairs,errorbar,area,stackedplo ...
- 解决Matlab画图直接保存.eps格式而导致图不全的问题
解决Matlab画图直接保存.eps格式而导致图不全的问题 参考文章: (1)解决Matlab画图直接保存.eps格式而导致图不全的问题 (2)https://www.cnblogs.com/Garf ...
- matlab相关性分析频谱_利用Matlab绘制正弦信号的频谱图并做相关分析[共6页]
<利用Matlab绘制正弦信号的频谱图并做相关分析[共6页]>由会员分享,可在线阅读,更多相关<利用Matlab绘制正弦信号的频谱图并做相关分析[共6页](6页珍藏版)>请在人 ...
最新文章
- oracle sap 用友 保险财务系统比较,SAP和用友的财务管理系统比较详解
- NSTimer用法,暂停,继续,初始化
- 爬虫-基于bs4库的HTML内容查找方法
- java-模拟存放String类型数据的栈
- 本博客弃用,请移步http://ningios.com查看最新
- C# 使用Timer控件设置时间间隔
- 切割 字符串_web前端如何使用字符串
- OpenCV2.4.5在13-04的配置过程
- 基于visual Studio2013解决C语言竞赛题之1071打印工资
- android audiotrack mp3,播放mp3数据压缩由JLayer和Audiotrack latin mp3在android
- Android UI 自定义控件大全
- MetaMask账号注册
- Set Similarity
- linux内核就是外包公司老板
- Linux命令之帮助手册
- 普通磨削、超声辅助磨削表面形貌代码及表面轮廓提取
- 三个或多个蛋白质结构的比对
- python爬取海量精美高清漂酿纯真可爱善良小姐姐壁纸(老司机福利)
- Camera Sensor
- STC12C5A60S2单片机WIFI信号扫描报警监视系统信号增强信号过低报警
热门文章
- 互联网金融风控面试业务知识
- 【Java基础】多态、equals、造型cast、访问修饰符(public、protected、default、private)、static、final
- 小狼-Windows10将默认输入法删除掉,只留一个输入法
- 七把利器助你打造充满竞争力的商业模式
- 日本品牌山地车java_2018“JAVA(佳沃)杯”第九届凤凰山山地自行车挑战赛在深圳举行...
- 董事长职责范围是什么
- 高级信息系统项目管理——十大知识领域五大过程组
- 零伽壹|多地印发涵盖区块链技术的发展实施意见
- self-attention is all you need(二)
- 查理·芒格推荐的投资人必读书单