MATLAB处理高光谱图像数据
以下内容主要包括四个方面:
(1)显示第2到5条光谱反射率和波长的关系(折线图);
(2)显示前四条叶绿素值的条形图
(3)显示叶绿素与各个波段的相关性折线图
(4)计算植被指数NDVI与叶绿素对应的散点图;
此链接为数据链接:MATLAB高光谱图像数据-数据集文档类资源-CSDN文库
数据下载之后你可以选择将这个表格放在MATLAB运行路径下的bin路径下,那么在代码中则可以直接输入名称调用,也可以随便放在某个文件夹下,那么加载数据的时候就需要提供完整路径。
%% 数据导入
Data=xlsread('ASD_Cab.xlsx');% 导入光谱反射率,定义变量为Data,为Excel的sheet1
Chlo=xlsread('ASD_Cab.xlsx',2);% 导入叶绿素数据,定义变量为Chlo,为Excel的sheet2
% 行为波段350-2500;
% 列为波段(列1)+32条光谱(列2-33)
wavelength=Data(:,1);% 定义x轴变量为wavelength,数据列1
Ref=Data(:,2:33);% 光谱数据为Ref,数据列2-33%% 绘图
Ref(1000:1050,:)=NaN;%由于把反射率数据单独拿出来之后,原本波长350nm现在到了第一行,所以在后续处理中要考虑到这一变化
Ref(1450:1600,:)=NaN;% 去除有噪音的波段1350-1400nm;1800-1950nm
%Ref(2120:2151,:)=NaN;
subplot(2,2,1);plot(wavelength,Ref(:,2:5));% 子图1:光谱反射率第2-5列显示(折线);
axis([400,2800,0,0.6]);% 横轴范围400-2500;纵轴范围0-1;
title('(a) 植被反射率');% 标题名:'(a) 植被反射率'
xlabel('波段/nm');% x轴名:’波段/nm'
ylabel('光谱反射率');% y轴名:'光谱反射率'subplot(2,2,2); bar(Chlo(1:4));% 子图2:前4条叶绿素值显示(条形图);
axis([0 5 0 60]);%设置坐标轴的大小
title('\it\fontsize{10}(b) 植被叶绿素含量');% 标题名:'(b) 植被叶绿素含量'
xlabel('样本编号');% x轴名:'样本编号'
ylabel('叶绿素含量ug/cm2');% y轴名:'叶绿素含量ug/cm2'corr_matrix=corr(Cab.',Ref.');%计算叶绿素和反射率的相关矩阵
subplot(2,2,3);plot(wavelength,corr_matrix);% 子图3:叶绿素与各个波段的相关性
axis([0,2650,-1,1]);% 相关性最佳位置显示
title('(c) 叶绿素与光谱相关性');% 标题名:'(c) 叶绿素与光谱相关性'
xlabel('波段/nm');% x轴名:'波段/nm'
ylabel('相关系数');% y轴名:'相关系数'b790=Ref(441,:);%此处本应使用波长790nm,但是由于上述提到的350nm去了第一行,所以此处输入的441对应的就是790nm
b665=Ref(316,:);
NDVI = (b790-b665)./(b790+b665);% NDVI = (b790-b665)/(b790+b665)
subplot(2,2,4);scatter(NDVI,Chlo,'filled');% 子图4:计算植被指数NDVI与叶绿素对应的散点图;
axis([0.4,1,20,60]);
title('(d) NDVI与叶绿素含量');% 标题名:'(d) NDVI与叶绿素含量'
xlabel('NDVI');% x轴名:'NDVI'
ylabel('叶绿素含量ug/cm2');% y轴名:'叶绿素含量ug/cm2'%% 保存
%绘制图像并保存为jpg格式
print G:\MATLAB\result\ASD_Cab.jpg -djpeg -r900
print(gcf, '-djpeg', 'abc.jpg')
% saveas(gcf, 'test', 'png')
此处提供的仅为最原始最简单的代码,在实际过程中你可以根据自己的需要进一步完善,比如修改字体字号、修改显示的形状颜色等等等等······
最后附上上述代码的执行结果:
MATLAB处理高光谱图像数据相关推荐
- 利用 MATLAB 彩色显示高光谱图像(伪彩色,真彩色)
利用 MATLAB 彩色显示高光谱图像(伪彩色,真彩色) 前言 一.使用imshow函数彩色显示高光谱图像 注意事项: 欢迎学习交流! 邮箱: z-@1-6.com 网站: https://zephy ...
- 基于matlab读取envi格式高光谱图像数据
1关于光谱: 电磁波按波长大小分为射线,可见光,近红外(780nm-2526nm),无线电等. 波长:一个振动周期内传播的距离. 什么是光谱:复色光色散后按波长大小排列的图案. 什么是高光谱:1光谱信 ...
- 如何理解高光谱图像数据
高光谱图像就是好多个灰度图像叠加到一起,每一个灰度图代表了一个光谱波段. 一般的二维图像表示,举个例子来说这个图像像素为255*255,也就是说这幅图像有255*255个像素,可以是灰度图或者彩色图, ...
- matlab的四维图像数据可视化
1.颜色来表示第四维 前面已经学了三维图形可视化,所谓三维就是指x轴,y轴,z轴组成了我们的三维,那么第四维用什么来表示呢,我们这里要用颜色来表示第四维,所谓四维图形可视化就是在三维图形可视化的基础上 ...
- MATLAB高光谱图像构建KNN图
在高光谱图像的特征提取过程中,采用非线性降维的方式对高光谱图像降维的过程中,采用图自编码器来对数据进行降维,需要将利用高光谱图像的结构信息和内容信息,则需要将高光谱图像数据构造为一个图结构,图结构的构 ...
- Matlab高光谱遥感数据
光谱和图像是人们观察世界的两种方式,高光谱遥感通过"图谱合一"的技术创新将两者结合起来,大大提高了人们对客观世界的认知能力,本来在宽波段遥感中不可探测的物质,在高光谱遥感中能被探测 ...
- 高光谱图像pca降维_高光谱图像的数据特性之探讨
图像是获取信息以及探知世界的重要媒介.近年来,传感科技与成像技术实现了跨越式发展,促使图像获取在质与量上均获得了显著提升.在多样化成像手段中,光谱成像技术是成像科技的重要组成部分,是人类借助光这一能量 ...
- 将.mat格式的高光谱图像转换成png或jpg格式
将.mat格式的高光谱图像转换成png或jpg格式 使用MATLAB打开.mat文件,并读取高光谱图像数据. 如果高光谱图像数据为三维矩阵,将其转置为(宽度,高度,波段数)的形式.这是因为MATLAB ...
- 【论文解读】利用高光谱图像对场景反射率进行有效估计(Efficient Estimation of Reflectance Parameters from Imaging Spectropy)
文章目录 前言 摘要 Ⅰ. 介绍 Ⅱ. 估计反射参数的方法 A. 重建阴影因子 B. 表面反射率和镜面系数的计算 C. 光源功率谱计算 D. 光源方向 E. 将方法扩展到三色图像 Ⅲ. 实现方式 Ⅳ. ...
最新文章
- Gromacs 5.1.4 在CentOS7下GPU加速版的安装
- vs2012 发布网站时出现 sgen.exe 已退出 代码为 1
- [Codeforces757G]Can Bash Save the Day?——动态点分治(可持久化点分树)
- QT学习笔记之QTableView设置属性的方法
- centos中bash占用cpu_Docker 多种维度限制容器可用的 CPU
- 解决内存瓶颈和计算负载问题,韩松团队提出 MCUNetV2
- python——装饰器和语法糖效果
- python csv使用_python CSV模块的使用
- UIPikerView的属性和使用方法
- CentOS6.6+Puppet3.7.4分布式部署Nagios监控系统
- BZOJ 1066[SCOI2007]蜥蜴
- The following IP can be used to access Google website
- 高通工具QXDM安装及使用方法
- vscode 下载加速方法
- 华为机试 - HJ10 字符个数统计
- php实现用户登录、注册以及修改功能(附加源码~)
- python必考题_干货|Python经典面试考题(下)
- 软件测试过程与方法_第4周单元测试
- [ XJTUSE ]JAVA语言基础知识——7.11 JTree、TreeModel实现树
- c语言case后面,switch语句case后面的范围怎么写