MATLAB高光谱图像处理基础

介绍高光谱图像的基本知识,便通过MATLAB对高光谱图像进行基本的处理。

文章目录

  • 前言
  • 一、高光谱图像
  • 二、MATLAB高光谱图像处理
    • 1.加载.MAT文件数据
    • 2.图像的显示
    • 3.图像维度变换
  • 总结


前言

高光谱图像是一个立方体结构,维度为M x N x B,M为水平方向像素数量,N为垂直方向像素数量,B为每个像素对应的波段数量。

实验数据集:
http://www.ehu.eus/ccwintco/index.php?title=Hyperspectral_Remote_Sensing_Scenes#Pavia_Centre_and_University

数据集介绍:
每一个数据包含两个文件,为.mat 格式文件,M x N x B格式的数据为高光谱数据,M x N 格式的文件数据为标签数据。


一、高光谱图像

1.1 高光谱图像包含很多波段,每个波段有其自己的波长范围和空间分辨率。遥感图像标准格式多为.tif、.img、.hdr格式,存储类型包括BSQ、BIL、BIP三种。

1.2 MATLAB中用于多波段图像读写的函数包括 multibandread和multibandwrite

1.3 以ENVI数据格式hdr读取为例,文件读取和现实的代码如下:

hdrfilename = 'file.hdr';
fid = fopen(hdrfilename ,'r');
info = fread(fid,'char=>char');
info = info';% 转置为行向量
fprintf(info);% 打印输出
fclose(fid);

二、MATLAB高光谱图像处理

1.加载.MAT文件数据

以KSC数据为例, 读取高光谱图像数据,便显示部分数据,以及进行相关的图像处理。

数据包含KSC_gt.mat和KSC.mat两文件,通过如下命令加载数据;加载完后,可以看到工作区有两个数据,一个三维,一个二维,分别为图像数据和标签数据,标签数据用在监督学习中。

load("KSC.mat");
load("KSC_gt.mat");

通过变量名称获取数据,

X = KSC;
L = KSC_gt;

2.图像的显示

2.1 显示单个波段的图像,需要使用uint8将数值转化为0 ~ 255的整型,才能显示。或者选取三个波段作为R,G,B三个分量,来合成图像,便显示。

通过如下命令来获取某个波段的图像数据;

r = uint8(KSC(:,:,1));
imshow(r);

在这里插入图片描述
2.2 获取三个波段,来合成图像,cat函数来合成;

g = uint8(KSC(:,:,100));
b = uint8(KSC(:,:,175));
% 通过cat函数来合成
img = cat(3,r,g,b);
imshow(img);

在这里插入图片描述

2.3 显示高光谱波段信息,通过如下代码显示。
先获取数据的维度,在对数据进行维度变换,然后通过plot函数来显示波段曲线。

[width,height,band] = size(X);
N = width * height;
data = reshape(X,N,band);
figure;
hold on;
% 选择几个波段进行显示
plot(data(1,:));
plot(data(100,:));
plot(data(150,:));
plot(data(50,:));
plot(data(end,:));
hold off;

在这里插入图片描述

3.图像维度变换

将三维图像数据和二维标签数据进行变换,用于相关处理。

[width,height,band] = size(X);
data = reshape(X,width * height,band);
label = reshape(L,width * height,1);

总结

在MATLAB中对数据进行处理的时候,经常需要使用reshape()函数对数据的维度进行变换。因此,需要注意数据的流动过程中的维度变化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/484076.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中国千亿科技巨头,成功收购英国最大芯片制造商!

来源:世界先进制造技术论坛内容来源:每日经济新闻综合自每经App、界面新闻、财联社等本期编辑:小艾 在全球缺芯的背景下,8月15日,国产芯片巨头闻泰科技(600745.SH)披露,旗下全资子公…

MATLAB图自编码器

通过MATLAB来实现图自编码器,用于高光谱图像特征的提取。 文章目录前言一、MATLAB相关知识二、编写算法1.图自编码器搭建2.可视化相关参数总结前言 算法输入数据: 图节点属性矩阵;邻接矩阵;概率p; W为自编码器的隐藏…

考夫曼:破解大脑代码并创建真正的人工智能

来源:CSDN博主「CDA数据分析师」原文链接:https://blog.csdn.net/yoggieCDA/article/details/1045567421955年,计算机科学家约翰麦卡锡(John McCarthy)首次创造了“人工智能”一词。当时,人工智能是对可以表…

MATLAB高光谱图像构建KNN图

在高光谱图像的特征提取过程中,采用非线性降维的方式对高光谱图像降维的过程中,采用图自编码器来对数据进行降维,需要将利用高光谱图像的结构信息和内容信息,则需要将高光谱图像数据构造为一个图结构,图结构的构建需要…

类脑量子叠加脉冲神经网络:从量子大脑假说到更好的人工智能

来源:神经现实作者:曾毅研究团队 |封面:Mario De Meyer排版:光影以深度神经网络为代表的现代人工智能模型在识别图像、语音、文字等模式信息任务取得优异表现。然而,生物大脑具有处理复杂多变的环境信息的能力&#xf…

遥感图像分类原理

1.原理 1.1 每一个像元作为一个样本,波段作为特征,理想情况下,同类地物应该具有相同或相似的特征描述,因此像元在n维特征空间中聚集在一起,而不同地物应该具有不同的特征描述,因此不同特征地物像元在n维空间…

2019第一次作业

10.实验代码 include <stdio.h> int main(void) { int i, f, X, N; scanf("%d",&N); int a [N]; scanf("%d",&X); f0; for(i0;i<N;i){ scanf("%d",&a[i]); if(a[i]X){ printf("%d",i); f; } } if(f0){ printf(&q…

分布式——ACID原则 CAP理论

分布式计算的原理 分布式计算就是将计算任务分摊到大量的计算节点上&#xff0c;一 起完成海量的计算任务。而分布式计算的原理和并行计算 类似&#xff0c;就是将一个复杂庞大的计算任务适当划分为一个个 小任务&#xff0c;任务并行执行&#xff0c;只不过分布式计算会将这些…

Matlab高光谱样本相关性分析

一.高光谱图像数据分析 1.分析光谱波段的相关性 1.1 对于维度为(m,n,b)的高光谱数据&#xff0c;使用reshape函数将其变换为(N,b)维度的&#xff0c;其中N m x n&#xff0c;表示像素数量&#xff0c;b表示波段数。 1.2 分析样本(像素)间波段的相关性&#xff0c;采用函数c…

万众瞩目的特斯拉AI日,会有哪些惊喜?

来源&#xff1a;华尔街见闻作者&#xff1a;方凌8月19日&#xff0c;特斯拉AI日即将举行。马斯克此前曾表示&#xff0c;此次AI日将展示特斯拉在人工智能方面硬件和软件开发的进展&#xff0c;并且招募顶级人才。活动的日子日渐临近&#xff0c;对于特斯拉究竟将在放出什么“大…

第一次会议(2019/02/22)

小组名称及成员介绍 小组名称&#xff1a;Triple兔成员介绍&#xff08;均为1703班&#xff09;项目经理&#xff1a;刘晓丽&#xff08;右上&#xff09;前端开发&#xff1a;刘晓丽&#xff08;右上&#xff09;、王亚群&#xff08;右下&#xff09;后端开发&#xff1a;乔疏…

JVM 工作原理和流程

作为一名Java使用者&#xff0c;掌握JVM的体系结构也是必须的。 说起Java&#xff0c;人们首先想到的是Java编程语言&#xff0c;然而事实上&#xff0c;Java是一种技术&#xff0c;它由四方面组成&#xff1a;Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Jav…

中国未来技术学院盘点

来源&#xff1a;科学网8月19日&#xff0c;上海交通大学未来技术学院正式揭牌成立。香港首富、宁德时代公司董事长曾毓群担任未来技术学院名誉院长&#xff0c;宁德时代首席制造官和工程制造及研发体系联席总裁倪军出任首任院长。一家市值超万亿的高科技龙头企业掌门人和高管&…

QT高级编程之QT基本概览

QT高级编程 主要从以下几个方面来介绍QT高级编程&#xff0c;并介绍QT相关的概念。 1、 QT部件Widget&#xff1b; 2、 QT信号与槽机制&#xff1b; 3、 对象树关系&#xff1b; 4、 布局管理&#xff1b; 5、标准对话框以及自定义对话框&#xff1b; 6、文件与目录&#xff…

计算机视觉中的自注意力

来源&#xff1a;机器学习研究组订阅自从引入网络以来&#xff0c;深度学习中的注意力机制在机器翻译和 社区中广受欢迎。然而&#xff0c;在计算机视觉中&#xff0c;卷积神经网络 (CNN) 仍然是常态&#xff0c;自注意力才刚刚开始慢慢渗透到研究的主体中&#xff0c;要么补充…

QT信号与槽-启动系统程序以及相关控件介绍

1.1 创建一个继承至QWidget的项目。 1.2 设计界面,分析界面采用的布局方式。 首先&#xff0c;每行控件采用水平布局方式&#xff0c;第三行为了使控件靠右&#xff0c;前面添加一个占位控件。三行采用垂直平局&#xff1b;选中控件&#xff0c;通过右键可以控件的布局方式&a…

科技部向全社会征集颠覆性技术研发方向

来源&#xff1a;人民网据科技部网站消息&#xff0c;为提升我国重大科技创新方向前瞻布局能力&#xff0c;加快推动颠覆性技术创新&#xff0c;科技部办公厅拟面向各有关单位和广大科研人员&#xff0c;开展颠覆性技术研发方向建议征集工作&#xff0c;对于符合条件的建议&…

springboot前后端分离项目MultipartFile获取前端传的file为null问题

【问题描述】 springbootvue 前后端分离项目&#xff0c;在对接上传文件功能时&#xff0c;一直显示文件为空。 【分析】 查找了很多博客&#xff0c;解决方法五花八门&#xff0c;但原因应该还是 springboot自带的org.springframework.web.multipart.MultipartFile和Multi…

计算机网络( 二十二)-数据链路层(补充)

1.链路link&#xff1a;结点------>相邻结点的物理线路。 2.数据链路&#xff1a;物理线路通信协议,通信协议(通信规程)用来控制数据的传输。 3.最常用网络适配器(硬件、软件)来实现协议。适配器包括了数据链路层和物理层两层的功能。 4.数据链路层的协议数据单元PDU------帧…

《科学之路》| 图灵奖得主杨立昆人工智能十问:AI会统治人类吗?

来源&#xff1a;《科学之路》作者&#xff1a;杨立昆封面&#xff1a;Yukai Du即便是最先进的人工智能系统也存在局限性&#xff0c;它们还不如一只猫聪明。人工智能常常被认为是一项将要颠覆世界的技术&#xff0c;从这一概念诞生至今的65年中&#xff0c;无数电影与小说塑造…