✍️ 作者注:本文聚焦于高光谱图像分类任务,使用 WHU-HI-HanChuan 数据集,通过 LightGBM 构建分类模型,并实现整图预测与可视化。全程只使用 Python 和主流机器学习库,强调代码逐段分析,方便初学者的读者理解和上手。
一、背景与数据来源
高光谱遥感图像因其每个像素拥有上百个波段,在地物识别、农业监测、城市分类等方面具有广泛应用价值。本文所使用的数据集来自武汉大学提供的开放数据集:
📌 数据名称:WHU-Hi-HanChuan
📌 下载地址:https://rsidea.whu.edu.cn/resource_WHUHi_sharing.htm
📌 图像尺寸:height × width × bands
📌 标签说明:每个像素属于一个地物类别,标签为0的像素表示无标注区域。
参考文献:
[1] Y. Zhong, X. Hu, C. Luo, X. Wang, J. Zhao, and L. Zhang, “WHU-Hi: UAV-borne hyperspectral with high spatial resolution (H2) benchmark datasets and classifier for precise crop identification based on deep convolutional neural network with CRF”, Remote Sens. Environ., vol. 250, pp. 112012, 2020.
[2] Y. Zhong, X. Wang, Y. Xu, S. Wang, T. Jia, X. Hu, J. Zhao, L. Wei, and L. Zhang, “Mini-UAV-borne hyperspectral remote sensing: From observation and processing to applications”, IEEE Geosci. Remote Sens. Mag., vol. 6, no. 4, pp. 46-62, Dec. 2018.
大家也可以替换成自己或者其他数据集进行实验。
二、实验目标与思路
我们将实现以下内容:
- 加载并预处理
.mat格式的高光谱图像与标签; - 训练一个 LightGBM 分类器;
- 在测试集上评估分类性能;
- 对整幅图像进行像素级预测;
- 可视化分类结果。
三、完整代码与详细讲解
(1)环境配置与中文字体支持
为避免中文显示乱码,需在绘图前设置中文字体:
import matplotlib
matplotlib.rcParams['font.family'] = 'SimHei' # 设置为黑体
matplotlib.rcParams['axes.unicode_minus'] = False # 正确显示负号
(2)导入基础模块
import scipy.io
import os
import numpy as np
from lightgbm import LGBMClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, classification_report, confusion_matrix
import matplotlib.pyplot

最低0.47元/天 解锁文章
9484

被折叠的 条评论
为什么被折叠?



