1关于光谱:

电磁波按波长大小分为射线,可见光,近红外(780nm-2526nm),无线电等。

波长:一个振动周期内传播的距离。

什么是光谱:复色光色散后按波长大小排列的图案。

什么是高光谱:1光谱信息丰富的光谱信息2光谱分辨率足够高

什么叫光谱信息丰富:区分光波段范围足够细。

光谱分辨率足够高:1在一固定波长内波段越多的光谱,分辨率越高。2波段越小,分辨率越高。

什么是半高全宽:看分辨率有多高,波段有多宽。

高光谱遥感数据光谱特征的三层体系

高光谱遥感影像是一个空间-光谱数据立方体。

每一层为一个波段,每一个像元各波段的属性值都构成一个光谱向量

通过对光谱向量的分析,可以提取许多对分类、信息提取都用的信息

高光谱数据格式之一:标准envi格式是两个文件,一个HDR一个DAT。

2基于matlab简单读取函数

function [image]=freadhyperspectraldata(fname)fid=fopen(fname);%打开冰箱
image=fread(fid);%放进大象
fclose(fid);     %关上冰箱门
%%简单的读取函数,得到一个一维结果。1*161200000.

将高光谱文件每一个数值进行读取,输出一个一维数组。

3按头文件,将上述数组reshape

我们无法处理上述一维数据,所以需要把高光谱数据变成三维矩阵,以便矩阵运算。

我们需要处理矩阵行数,列数,通道数(波段数),数据类型,这四个值在头文件有标明。

所以reshape之前使用基本语句读取到上述四个值,得到一个三位矩阵(表示高光谱数据尺寸)和一个数据类型。

clc
clear
fname='G:\轻工大学\1高光谱\高光谱数据\T1\1\capture\1-1'
rfid = fopen(strcat(fname,'.hdr'),'r'); %打开头文件%strcat是连接字符串,rfid是指定头文件
while 1tline = fgetl(rfid);%fget是读取每一行并去掉换行符if ~ischar(tline), break, end[first,second]=strtok(tline,'=');%将=作为分割节点,%=前为first,=后为second
d={'bit8' 'int16' 'int32' 'float32' 'float64' 'uint16' 'uint32' 'int64' 'uint64'};switch first%获取头文件中samples,lines,bands的值,即行数、列数、波段数信息case 'samples '[f,s]=strtok(second);p(1)=str2num(s);first% a=1case 'lines '[f,s]=strtok(second);p(2)=str2num(s);case 'bands '[f,s]=strtok(second);p(3)=str2num(s);endend
t='uint16'%本次实验为了加快进度未设置如何搜索数据类型,直接赋值
fname='G:\轻工大学\1高光谱\高光谱数据\T1\1\capture\1-1.dat'
fid=fopen(fname);
image=fread(fid,t);
image=reshape(image,[p(1),p(2),p(3)]);
fclose(fid);

运行结果:image:1024*948*224

p指光谱数据矩阵尺寸,image指reshape后的光谱数据已经被读取并转换为三维矩阵。

ps:envi标准高光谱数据格式分为两个文件:1头文件 hdr文件2数据文件dat(有一点不懂为什么记事本打开dat文件全是乱码而不是数字矩阵,按头文件说的应该uint16。如果不是数字那么matlab里的image三维矩阵又是什么呢。)

今天学习了元数据的读取和数据整理,下一次我们可以看看这些数据如何在matlab里显示和修改。

基于matlab读取envi格式高光谱图像数据相关推荐

  1. MATLAB读取HDF格式的SST数据

    利用MATLAB读取HDF格式的SST数据是比较简单的,MATLAB中有专门用于读取HDF的函数hdfread()与hdfinfo()就能很好的读取HDF文件.我们可以在读取文件的时候,通过显示文件中 ...

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

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

  3. 读取BIL格式高光谱数据——C/C++

    在上一篇博客中,我们提到如何读取头文件.这篇博客将要谈到如何进一步读取高光谱数据本身,这里以BIL格式为例. 什么是BIL呢?BIL的全称为Band Interleave by Line,连续保存的是 ...

  4. matlab 多个波段,MatLab读取ENVI图像统计多波段图像信息

    在ENVI统计遥感多波段图像中每个波段的均值.方差.最大值.最小值是比较容易办到的,但是如果要处理多批的数据就没有那么方便了,这里转载一个MatLab读取ENVI图像(img+hdr)的程序,并且计算 ...

  5. MATLAB处理高光谱图像数据

    以下内容主要包括四个方面: (1)显示第2到5条光谱反射率和波长的关系(折线图): (2)显示前四条叶绿素值的条形图 (3)显示叶绿素与各个波段的相关性折线图 (4)计算植被指数NDVI与叶绿素对应的 ...

  6. las文件matlab,基于Matlab的LAS格式数据解析与显示.pdf

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspmatlab 基于Matlab的LAS格式数据解析与显示.pdf ...

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

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

  8. c++读取图片_Pytorch读取,加载图像数据(一)

    Pytorch读取,加载图像数据(一) 在学习Pytorch的时候,先学会如何正确创建或者加载数据,至关重要. 有了数据,很多函数,操作的效果就变得很直观. 本文主要用其他库读取图像文件(学会这个,你 ...

  9. matlab批量导入excel表格数据,matlab导入excel表格数据-如何用matlab读取多个excel表格数据,将每个表格数......

    如何用matlab读取多个excel表格数据,将每个表格数... 一xlsread()函数,比import简单的多,具体语句:A = xlsread('yourfilename.xls')望高手支招! ...

最新文章

  1. Linux软件安装包中devel与非devel包之间的区别
  2. 11.2 计算机保护条例解读
  3. java和python的比较-Python和Java就业前景对比
  4. TCP/IP网络中专有名词注解
  5. python 打包文件
  6. 2.安装号mysql后当重启Linux服务器之后发现进入不了的解决方案
  7. iOS平台快速发布HT for Web拓扑图应用
  8. 洪学海(1967-),男,博士,中国科学院计算技术研究所研究员,信息技术战略研究中心常务副主任。...
  9. 51单片机定时器问题总结
  10. 【Python】fastapi框架之Web部署机器学习模型
  11. Element-Ui 双重el-tabs组件选中第二层时,刷新导致第一层选中样式丢失问题以及解决方法
  12. OPA277/OPA2277/OPA4277 High Precision Operational Amplifiers 高精度运放
  13. java自动填充_java 如何自动填充网页上的用户名和密码?
  14. linux can 总线socket接口测试使用
  15. 移植facenet pb模型到android
  16. Line营销机器人2019版
  17. 使用FFmpeg进行屏幕录像和录音
  18. 阿里开源消息中间件MetaQ(RocketMQ)简介
  19. android pak文件_android 文件读写I/O 大集合 (持续更新)
  20. 如何让自己的网站快速被搜索引擎找到

热门文章

  1. 彻底弄懂LSH之simHash算法
  2. C语言绘图示例-商标徽标
  3. 项目13 路由器与网桥的设置
  4. 系统分析技术简单介绍
  5. J2EE网站开发与优化如何提高代码运行效率
  6. 奥术神座和计算机科学?
  7. SeaBIOS(1) - 简介
  8. 今日早报 每日精选12条新闻简报 每天一分钟 知晓天下事 8月17日
  9. html form半透明,HTML——form
  10. 谷歌2013年搜索热榜 全球榜曼德拉抢榜首 中国区小爸爸第一