作者注:本文基于武汉大学WHU-HI-HanChuan高光谱数据集,介绍如何通过**主成分分析(PCA)与形态学属性操作(Area Opening & Closing)**实现特征挖掘与图像增强。该方法可以帮助我们更好地观察地物空间结构,为后续分类与变化检测提供先验特征。附完整Python代码与逐步讲解,助你掌握特征可视化的实用技巧。
一、背景介绍:特征挖掘在高光谱分析中的价值
高光谱遥感图像具有连续细致的光谱信息,为地物识别提供了强有力的依据。然而,面对成百上千个波段,如何有效提取和可视化有用的特征,成为遥感应用中的关键挑战。
为此,本文结合:
- PCA(主成分分析):降低数据维度,提取主要信息;
- 形态学属性操作(Area Opening/Closing):增强空间结构特征,如去除小斑块、填补小孔洞。
本文使用的实验数据为 WHU-HI-HanChuan 数据集,公开下载地址:
二、实验目标与流程
本实验的目标如下:
- 加载高光谱数据及地物标签;
- 利用PCA提取第一主成分作为灰度图;
- 对PCA图像应用形态学的开/闭操作;
- 将所有图像可视化在同一图中,便于比较;
- 保存图像结果用于后续分析。
三、Python代码详解与实现
(1)中文显示支持与必要库导入
为避免中文乱码与负号显示问题,首先进行Matplotlib参数设置:
import matplotlib
matplotlib.rcParams['font.family'] = 'SimHei' # 支持中文
matplotlib.rcParams['axes.unicode_minus'] = False # 正常显示负号
同时导入主要库:
import os
import numpy as np
import scipy.io
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
from skimage.morphology import area_opening, area_closing
(2)路径与文件读取设置
指定数据路径(根据自己实际路径修改):
data_dir = r"your_path"
x_path = os.path.join(data_dir, "WHU_Hi_HanChuan.mat")
y_path = os.path.join(data_dir, "WHU_Hi_HanChuan_gt.mat")
创建输出目录:
save_dir = os.path.join(data_dir, "MAP_Images")
os.makedirs(save_dir, exist_ok=True)
(3)数据加载函数定义
def load_data(x_path, y_path):
x = scipy.io.loadmat(x_path)
y = scipy.io.loadmat(y_path)
x_key = [k for k in x if not k.startswith('__')][0]
y_key = [k for k in y if not k.startswith(
80





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



