1.安装高光谱工具箱

首先,利用MATLAB对高光谱影像进行处理需要安装高光谱工具箱,这要求MATLAB版本至少为2020版本及以上,否则会出现不兼容的问题。

下载地址:https://ww2.mathworks.cn/help/images/ref/hyperspectralviewer-app.html

2.示例代码

clear, clc, close all;

hcube = hypercube('temp.hdr'); % caijian.hdr 为高光谱数据

datacube = hcube.DataCube;

wl = hcube.Wavelength;

% lines 为行数,samples 为列数,bands 为波段数

[lines, samples, bands] = size(datacube);

% 新建表格用于存放光谱数据,行数为画面中所有像素点的数据,列数包括像素x,y的坐标列和波长列

data_table = zeros(lines*samples, bands+2);

% 提取每个点的光谱曲线保存到data_table中

sum = 0;

for x = 1:1:lines

for y = 1:1:samples

sum = sum+1;

data_table(sum, 1) = x; % 第一列为像素的行索引

data_table(sum, 2) = y; % 第二列为像素的列索引

spectrum = datacube(x, y, :);

spectrum_1d = reshape(spectrum, [1, bands]);

data_table(sum, 3:end) = spectrum_1d; % 第三列到最后一列为波段

end

end

% % 通过两种方式,绘制第3行,第10列像素的光谱曲线,验证提取的光谱曲线是否准确

wl_1d = reshape(wl, [1, bands]);

figure, plot(wl_1d, data_table((3-1)*samples+10, 3:end), "LineWidth",5, "Color","blue"); % 从data_table 中取点

hold on;

spectrum_1d = reshape(datacube(3, 10, :), [1, bands]); % 从图像中取点

plot(wl_1d, spectrum_1d, "LineWidth", 1, "Color","red");

hold off

3.结果展示

3.1 单个像素光谱信息

3.2 图像所有像素光谱信息

行:每一行代表一个像素

列:1,2列是图像像素坐标(以左上角的像素设置为原点进行编码),后面的每一列代表一个波段,其值为反射率值。

基于MATLAB读取高光谱影像每个像素的光谱信息相关推荐

  1. matlab读取高光谱影像

    1.函数multibandread读取读取多波段二进制影像文件(ENVI主菜单file-save file as-envi standard得到的就是二进制影像文件,有时甚至会看到后缀名为bsq.bi ...

  2. matlab编程读取导航文件文件,基于Matlab读取标准RINEX格式的GPS星历数据

    [实例简介] 基于Matlab读取标准RINEX格式的GPS星历数据,采用Matlab直接读取Rinex文件 张妮,等基于 Matlab读取标准 RINEX格式的GPS星历数据 navdata(i). ...

  3. Matlab中的dyna,基于 MATLAB 读取 LS-DYNA 的计算结果文件

    LS-DYNA 的输出文件包含两类,分别为二进制文件和 ASCII 文件,分别由如下的控制命令输出. 二进制文件 *DATABASE_BINARY_OPTION ASCII 文件 *DATABASE_ ...

  4. 基于matlab读取envi格式高光谱图像数据

    1关于光谱: 电磁波按波长大小分为射线,可见光,近红外(780nm-2526nm),无线电等. 波长:一个振动周期内传播的距离. 什么是光谱:复色光色散后按波长大小排列的图案. 什么是高光谱:1光谱信 ...

  5. 基于python的Spectral模块读取高光谱影像信息的一些笔记

    1. 安装spectral模块 spectral模块的安装需要有numpy.pillow.wxpython.matplotlib.ipython等这几个包的铺垫,而且安装spectral模块时看的教程 ...

  6. 利用ArcGIS提取高光谱图像每个像素的光谱信息,再利用matlab显示每个像素的光谱信息

    1.示例高光谱图像 2.像素光谱信息提取步骤 2.1 栅格转点 在ArcGIS的工具箱中选择[栅格转点]工具,将每个像素都转成一个点,如下图所示: 2.2 多值提取至点 在ArcGIS的工具箱中选择[ ...

  7. matlab读取RGB888或RGB565像素文件并绘图

    1.matlab下,通过读取txt文件中的RGB888格式的像素文件绘图,并将其转换为RGB565格式后再绘图.代码如下: clear all; close all; a=textread('E:\m ...

  8. MATLAB读取高光谱数据

    只能读取dat类型的高光谱数据 以下为头文件 clc clear all close allhdr = read_envihdr('d.hdr'); Image = multibandread('d. ...

  9. 基于matlab 读取文件夹 保存文件夹

    mydir='E:'; bw = 'E:'; if mydir(end)~='\' mydir=[mydir,'\']; end DIRS=dir([mydir,'*.txt']); %扩展名 n=l ...

最新文章

  1. GPU版TensorFlow怎么指定让CPU运行
  2. oracle9201怎么安装,Solaris10上安装64位Oracle9201
  3. 深入理解CSS盒模型
  4. Solr集群搭建,zookeeper集群搭建,Solr分片管理,Solr集群下的DataImport,分词配置。
  5. BZOJ1566 [NOI2009]管道取珠
  6. centos8安装mysql_CentOS8+FreeRadius+Mysql8.0+daloRadius建立Radius服务器
  7. 这又何止呢的openeim002
  8. java持续集成soapui_接口自动化测试持续集成--Soapui接口功能测试参数化
  9. Java实现求二叉树的路径和
  10. PHP 中 new static 和 new self 的区别
  11. vscode 左侧图标_分钟将vscode撸成小霸王
  12. Android学习分享:执行某ViewGroup的动画时,子控件太多导致动画执行卡顿的问题...
  13. fences卸载_WIN10专业版彻底删除fences的技巧
  14. python数字转换成中文大写_Python将阿拉伯数字转化为中文大写
  15. 魔方cfop公式软件_按这七步训练,你可以快速玩转魔方!
  16. 火狐插件 打开html 死机,Firefox火狐Flash插件卡死问题完美解决方法
  17. 王垠的40行代码,究竟diao在哪里
  18. 浙江大学计算机学院就业办,浙江大学就业信息网
  19. “测验你左右脑分别有几岁”到底是个什么鬼?
  20. 硒化钼纳米颗粒/MoSe2 Nanoparticles的介绍 提供氨基/NH2/羧基COOH/PEG/蛋白Protein/抗体antibody功能化修饰的硒化钼纳米颗粒/MoSe2 Nanoparti

热门文章

  1. echarts趋势线
  2. LoadLibrary失败,GetLastError= 193
  3. 教你使用破解无线路由器笔记本password
  4. uni-app实战之社区交友APP(1)项目介绍和环境搭建
  5. jar和war的区别
  6. 为什么信息图会帮助你的SEO
  7. 利用C语言判别用户输入数的奇偶性和正负性
  8. python处理cookies
  9. 补丁工具Quilt与Git
  10. 虚拟机安装与ubuntu安装