高光谱图像分类-基于Python的多分类器对比与结果可视化

高光谱图像分类 参考论文:《HybridSN: Exploring 3-D–2-DCNN Feature Hierarchy for Hyperspectral Image Classification》 高光谱图像是立体数据,也有光谱维数,仅凭2-D-CNN无法从光谱维度中提取出具有良好鉴别能力的feature maps,3-D-CNN在计算上更加复杂,对于在许多光谱带上具有相似纹理的类来说,单独使用也不会有很好的效果,混合CNN模型克服了之前模型的缺点,将3-D-CNN和2-D-CNN层组合到该模型中,充分利用光谱和空 阅读详情

一、实验目的

  1. 高光谱数据预处理:从3D数据转换为2D样本,去除无效标签,归一化处理

  2. 多分类器对比:学习KNN、SVM、随机森林等算法的实现与调参

  3. 性能评估:计算OA(总体准确率)、AA(平均准确率)和Kappa系数

  4. 结果可视化:绘制分类结果图并对比不同算法的表现

二、数据集与工具

  • 数据集:高光谱图像 dc_hx.mat(光谱数据)与 dc_gt.mat(标签数据)

     上述数据为公开数据,可自行替换

  • 工具:Python + Scikit-learn + Matplotlib

三、实验步骤与代码解析

1. 数据加载与预处理

关键代码:

# 加载数据  
data = sio.loadmat('dc_hx.mat')['dc']  
labels = sio.loadmat('dc_gt.mat')['dc_gt']  

# 3D转2D(样本×特征)  
X = data.reshape(-1, data.shape[-1])  
y = labels.ravel()  

# 去除无标签样本(标签为0的像素)  
X = X[y > 0]  
y = y[y > 0]  

# 归一化  
scaler = StandardScaler()  
X = scaler.fit_transform(X)  

说明:

  • 高光谱数据维度为 (宽×高×波段),需转换为 (样本数×特征数) 供模型训练

  • 归一化可消除不同波段量纲差异,提升模型收敛速度

2. 划分训练集与测试集

关键代码:

X_train, X_test, y_train, y_test = train_test_split(  
    X, y, test_size=0.1, random_state=42, stratify=y  
)  

参数解析:

  • test_size=0.1:10%数据作为测试集

  • stratify=y:保持训练集与测试集的类别分布一致

3. 多分类器训练与评估

支持的算法:

  • K近邻(KNN)

  • 支持向量机(SVM,RBF核)

  • 随机森林(Random Forest)

  • 逻辑回归(Logistic Regression)

  • 决策树(Decision Tree)

  • 朴素贝叶斯(Naive Bayes)

评估指标:

  • OA(Overall Accuracy):总体分类准确率

  • AA(Average Accuracy):各类别准确率的平均值

  • Kappa系数:衡量分类结果与随机分类的一致性

关键代码:

for name, clf in classifiers.items():  
    clf.fit(X_train, y_train)  
    y_pred = clf.predict(X_test)  
    oa = accuracy_score(y_test, y_pred)  
    cm = confusion_matrix(y_test, y_pred)  
    aa = np.mean(np.diag(cm) / np.sum(cm, axis=1))  
    kappa = cohen_kappa_score(y_test, y_pred)  
    results[name] = {"OA": oa, "AA": aa, "Kappa": kappa}  

4. 全图分类与可视化

关键代码:

# 全图分类  
image_2d = data.reshape(-1, data.shape[-1])  
image_2d = scaler.transform(image_2d)  
classified_image = clf.predict(image_2d)  
classified_image = classified_image.reshape(data.shape[:2])  

# 可视化  
plt.imshow(classified_image, cmap='jet')  
plt.title(f"{name} Classification")  

效果图示例:

#高光谱图像分类#:分类的方法有哪些? 基于像素分类的优点是实现简单,不需要进行图像分割,缺点是容易受到噪声的干扰,分类精度不高。基于对象的分类:这种分类方法是先将高光谱图像中的目标或区域进行分割,然后提取分割后的区域或目标的特征信息进行分类。常见的基于对象的分类方法包括基于支持向量机(SVM)的目标分类方法、基于图论的目标分类方法和深度学习方法等。基于像素的分类:这种分类方法是针对每个像素进行分类,将像素的光谱信息作为输入特征,然后利用各种分类算法对像素进行分类。高光谱图像分类方法可以根据分类粒度的不同分为基于像素的分类和基于对象的分类。 阅读详情

相关推荐

高光谱图像分类python代码

参考高光谱图像分类python代码 我建立了两个python文件: 1.data.py (负责加载.mat文件,将它转化为,csv文件) 2.train and classify.py (训练并观察分类效果) 下面分别是两段代码(对前面的引用代码做了轻微改动) 1.data.py import matplotlib.pyplot as plt import numpy as np from scipy.io import loadmat import spectral from sklearn impor

weixin_42402402的博客 9844

CV-可视化图像聚类/分类算法的结果

注意,这里的data2是一个文件夹,里边保存要进行聚类的照片文件夹,如data2/dog/1.jpg, data2/dog/2.jpg, data2/cat/1.jpg, data2/cat/2.jpg…因此,使用ImageFolder一般读取的是一个文件夹中的所有图片,需要使用for循环等方式对图片展示,后文会有说明,请继续阅读。接着上文,现在你使用datasets.ImageFolder的方式加载了一批图片,并对其使用k-means算法进行聚类,得到一个labels数组。

weixin_44047927的博客 770

Python高光谱图像可视化展示(imgvision 1.7.3)

imgvision.spectra()通过一行代码将任意分辨率光谱图像转换至任意光源下的RGB或XYZ空间,配合imgvision.cvtcolor()可以实现任意颜色空间转换

Syuhen的博客 1万+

高光谱图像的SVM分类

@Hyperspecteal Image [SVM] 高光谱图像的SVM分类 #本人小菜鸟一只,目前在学习高光谱图像分类的相关知识,感觉分享的代码实在少得可怜,前几天看了几篇大佬的代码分享,若有所思,按自己看得懂的方式重新整理了一下,分享一下。 #这也是我写的第一篇博客,之后可能也会用这样的方式做分享或者管理我的代码,实在是第一次写,有很多地方不熟悉,如果写的水平太低恶心到你了,实在不好意思。 #在此,也把代码的来源,几位的大佬的博客地址引一下 链接1: xiao韩.链接2: 哈士奇说喵.链接3: 冰机灵.

qq_41852224的博客 1万+

基于卷积神经网络的高光谱图像分类

近年来深度学习的技术在计算机视觉领域中大放异彩,使得对多光谱数据分类的研究迅速发展,结合2D-CNN,3D-CNN,注意力机制,PCA降维等方法均可使得对多光谱图像的分类精度得以提升。目前CNN网络大量用于传统的CV领域,而对于高光谱图像的分类仍比较缺乏,本文章基于CNN网络在高光谱图像中的分类做一个综述。根据CNN网络对高光谱图像特征提取方式的不同,分为基于谱特征,空间特征,和空谱特征的分类方法。

m0_63260018的博客 9877

常用的高光谱图像分类数据集

主要包括:Indian Pines;Pavia Centre;Pavia University;Salinas;Salinas-A;Washington_DC。

高光谱分类任务数据集介绍

印第安松的图像覆盖了印第安纳州西北部的农业印第安松试验场,由AVIRIS传感器收集。空间尺寸为145 × 145,空间分辨率为每像素20 m。数据集包含16个类,表1列出了标记样本的详细信息。帕维亚大学的图像是由ROSIS-03传感器在意大利帕维亚大学周围的城市地区收集的。图像尺寸为610 × 340像素,空间分辨率为1.3 m,光谱波段为103个,光谱范围为0.43 ~ 0.86 μm。数据集剔除20个吸水光谱带后,共包含204个光谱带。数据集包含16个类,表1列出了标记样本的详细信息。

weixin_48138577的博客 1770

图像理解与智能处理高光谱图像分类代码+课程报告

基于PaviaU数据集的高光谱图像分类,包含两种方法,第一种是MATLAB代码,通过PCA降维+garbor特征提取+svm分类,第二种是python代码,通过cnn网络进行特征提取分类。

高光谱图像分类基础

1.基本介绍 高光谱遥感(Hyperspectral remote sensing) 是将成像技术和光谱技术相结合的多维信息获取技术,同时探测目标的二维集合空间与一维光谱信息,获取高光谱分辨率的连续、窄波段图像数据。 高光谱识别优势: 光谱分辨率高、波段众多,能够获取地物几乎连续的光谱特征曲线,并可以根据需要选择或提取特定波段来突出目标特征; 同一空间分辨率下,光谱覆盖范围更宽,能够探测到地物更多对电磁波的响应特征; 波段多,为波段之间的相互校正提供了便利; 定量化的连续光谱曲线数据为地物光谱机理模型引

成功的方式只有一个,按自己的方式,度过人生。欢迎共赴知识与乐趣的探索之旅! 2万+

高光谱分类全套代码3D_CNN模型(pytorch)

1、包含训练代码、预测代码、数据划分代码、网络代码等,采用pytorch框架所写。 2、换个数据集或者自己数据就可以使用。 3、保证运行成功。

POWER SI仿真流程

一、打开软件Power SI二、加载PCB,可以直接使用brd文件,不用再进行格式转换三、check Stackup,与原来的PCB叠层对照一遍,检查数据加载后有没有出错。四、select Nets,加载brd文件后,可能所有的网络都处于使用状态,先在右侧net manager下面右键disable all nets,再使能需要仿真的电源网络(如果要仿真的网络没有归属到电源网络,在其上右键,选classfy as power \ground nets)

lx5213的博客 1312

【HSI】高光谱的数据集分类深度学习实战及代码理解

高光谱的数据集分类深度学习实战及代码理解,基于最简单的2D卷积来对整个高光谱深度学习特征分类进行讲述,模型可以进行相应的替换

川川自溢的博客 1万+

uniapp+华为HBuilder X 4.29跑鸿蒙模拟器报错没有签名授权

uniapp+华为HBuilder X 4.29跑鸿蒙模拟器报错没有签名授权报错信息11:39:47.976 安装 .hap 到鸿蒙设备 ...11:39:48.517 运行所需的权限没有签名授权,请参考 配置文档11:39:48.517 安装失败。

weixin_66071584的博客 1350

【图像分类】基于阈值分类器(BTC)进行高光谱图像分类研究(Matlab代码实现)

它使用由标记的训练像素组成的预定字典执行分类。在公共数据集上的数值结果表明,我们的提案在分类精度和计算成本方面都优于众所周知的基于支持向量机的技术和基于稀疏的贪婪方法,如同步正交匹配追踪。每个像素 捕获的高光谱图像(HSI)或数据立方体包含非常有用的光谱测量值或特征,这些测量值或特征可能是 用于区分不同的材料和物体。众所周知,像素级分类器的性能可以通过合并空间信息来提高 基于HSI均匀区域中的相邻像素具有相似的光谱特征的事实。中提出的基于分割的技术结合了通过聚类和像素获得的分割图 SVM 技术的分类结果。

weixin_46039719的博客 755

利用Sigrity的SPEED2000进行时域电源噪声分析

SPEED2000进行时域电源噪声分析

ZHENGSA的博客 3619

用Java实现森林冰火人游戏

g.drawString("游戏结束", CELL_SIZE * COLS / 2 - 100, CELL_SIZE * ROWS / 2);g.drawString("难度级别: " + difficultyLevel, 10, CELL_SIZE * ROWS + 60);g.drawString("生命值: " + playerHealth, 10, CELL_SIZE * ROWS + 20);setTitle("森林冰火人");

2401_82778412的博客 1733

【代码分析】用于高光谱图像分类的DRCNN代码解析

**这篇文章是DRCNN高光谱图像分类《Diverse Region-Based CNN for Hyperspectral Image Classification》论文解析https://blog.youkuaiyun.com/weixin_44794449/article/details/88718383**的相关文章,主要是解析了这篇论文的代码构成以及相关解析 代码文件的构成 用于高光谱分类的代码构成...

weixin_44794449的博客 9994

代谢组学数据分析实战:用R语言从PCA、PLS-DA到OPLS-DA一步步搞定(附代码)

本文详细介绍了使用R语言进行代谢组学数据分析的全流程,从数据预处理到PCA、PLS-DA和OPLS-DA模型构建与验证。通过实际案例和代码示例,帮助研究者掌握关键分析技术,提升数据解读能力,特别适合生命科学领域的研究人员。

weixin_28689507的博客 132

基于随机森林与支持向量机的高光谱图像分类(含python代码)

随机森林以其强大的集成学习能力,通过构建多个决策树并汇总它们的预测结果,能够有效地处理高维数据,捕捉到数据中的复杂模式。相比之下,支持向量机通过寻找能够最大化不同类别之间间隔的超平面来进行分类,它在处理高维数据时同样表现出色,尤其是在数据线性可分或通过核技巧转换为线性可分的情况下。在高光谱图像分类中,SVM能够通过选择合适的核函数和参数,有效地识别出不同地物的光谱特征,实现高精度的分类。这里以窗口为25的大小,训练集和测试集的占比分别为20%的训练,80%的验证。将下载的数据加载进内存,便于后续处理。

知识搬运者 2684

晶闸管选型参数,结构原理,工艺与注意问题总结

闸管(Thyristor)是一种半导体开关器件,也被称为可控硅整流器(SCR, Silicon Controlled Rectifier)。它可以在高电压和大电流条件下工作,常被用于交流电的控制和整流。本文对晶闸管的工作原理,结构特点,工艺流程,选型参数及设计注意事项进行总结。

fydar的博客 1280

K8s(二十二):k8s集群如何部署一个Spring Boot项目(依赖于MySQL和Redis外部服务)

🔴 K8s(二十二):k8s集群如何部署一个Spring Boot项目(依赖于MySQL和Redis外部服务)

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 2万+

支持向量机高光谱图像分类的可视化

支持向量机(SVM)是一种机器学习算法,其中 SVM 分类器是用于对高维数据进行分类的有效工具。对于高光谱图像分类,SVM 分类器的可视化可以使用二维图表或三维图表,其中数据点被标记为不同的类别,并且划分超平面是由 SVM 分类器在训练过程中学习到的决策边界。在二维图表中,划分超平面是一条直线,在三维图表中,划分超平面是一个平面。除了分类数据点以外,SVM 分类器还可以可视化支持向量,即与决策边界...

weixin_42588877的博客 657

社交媒体文章内容与评论抓取:Python 爬虫实战教程

通过本文的介绍,我们学习了如何使用 Python 编写爬虫,抓取社交媒体平台的文章内容和评论。我们详细介绍了如何使用requestsSelenium和Tweepy等工具,抓取微博和 Twitter 上的公开数据。同时,我们还讨论了如何处理反爬虫机制,避免账号或 IP 被封禁。抓取社交媒体数据是一个充满挑战和乐趣的过程,掌握这些技术后,你可以在大数据分析、情感分析和舆情监测等方面得到更深层次的应用。

2201_76125261的博客 1708

AI 上下文记忆补充机制:延迟分类——让分类服务于召回,而非写入

传统 AI 记忆系统往往在内容写入时强制分类归档,成本高、准确率低、维护复杂。本文提出一种「延迟分类」补充机制:AI 生成回答时只打轻量标签,不做精细归档;当用户后续回溯历史内容时,再根据当前问题动态分类、召回和组织前文。该机制与三层记忆架构天然衔接,让分类行为始终服务于召回需求,而非为了分类而分类。

duolili的博客 332

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

上一篇: 农作物数据构建和统计(基于实测数据、GEE及python)
下一篇: 使用 Google Earth Engine(GEE)批量下载 Landsat 遥感影像教程
遥感AI实战
博客等级 码龄9年 1002粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

遥感AI实战

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值