You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于PCA彩色合成图对高光谱图像原始光谱进行聚类分组?

基于PCA彩色合成图的高光谱原始光谱聚类方案(ENVI+Python)

ENVI工具操作流程

步骤1:基于PCA彩色合成图创建ROI

  • 打开生成的PCA彩色合成图像,启动ROI Tool(菜单栏>Tools>ROI Tool)
  • 针对图像中观察到的每个聚类模式,分别创建独立的ROI类别(可使用手绘、多边形或阈值工具圈选),确保每个聚类区域被准确覆盖

步骤2:提取ROI对应的完整原始光谱

  • 打开原始高光谱图像,在Toolbox中找到Region of Interest > Extract ROIs from Image工具
  • 选择原始高光谱文件和已保存的ROI文件,设置输出路径后运行,即可得到每个ROI对应的原始全波段光谱数据集

步骤3:基于原始光谱的自动聚类(可选)

  • 若需要对原始光谱做自动聚类,可使用Classification > Unsupervised Classification > K-Means工具
  • 输入原始高光谱图像,设置聚类数量(参考PCA图中观察到的聚类数目),运行后生成分类结果;后续可结合已创建的ROI对分类结果进行验证或调整

Python解决方案

依赖库:spectral、numpy、scikit-learn、scikit-image

1. 读取数据

import spectral.io.envi as envi
import numpy as np
from sklearn.cluster import KMeans
from skimage.segmentation import slic

# 读取原始高光谱数据和PCA彩色合成图
hyperspec_data = envi.open('your_raw_hyperspec.hdr', 'your_raw_hyperspec.dat').load()
pca_rgb = envi.open('your_pca_rgb.hdr', 'your_pca_rgb.dat').load()

2. 基于PCA图获取初始聚类区域

用SLIC分割PCA图得到初始的聚类掩码(也可手动标注ROI):

# 根据PCA图中的聚类数设置n_segments
seg_mask = slic(pca_rgb, n_segments=5, compactness=10, sigma=1)

3. 提取分组原始光谱

spectral_groups = []
# 遍历每个分割区域,提取对应原始光谱
for seg_id in np.unique(seg_mask):
    region_mask = seg_mask == seg_id
    # 提取该区域的所有全波段光谱
    region_spectra = hyperspec_data[region_mask].reshape(-1, hyperspec_data.shape[2])
    spectral_groups.append(region_spectra)

4. 基于原始光谱的优化聚类(可选)

如果初始分割不够精准,可对提取的原始光谱做K-Means聚类再映射回图像:

# 合并所有区域的光谱
all_spectra = np.vstack(spectral_groups)
# 初始化K-Means,聚类数参考PCA图中的聚类数
kmeans = KMeans(n_clusters=5, random_state=42)
cluster_labels = kmeans.fit_predict(all_spectra)

# 将聚类标签映射回图像
final_label_img = np.zeros_like(seg_mask)
current_idx = 0
for seg_id in np.unique(seg_mask):
    region_mask = seg_mask == seg_id
    region_size = region_mask.sum()
    final_label_img[region_mask] = cluster_labels[current_idx:current_idx+region_size]
    current_idx += region_size

内容的提问来源于stack exchange,提问作者domarom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 06:42:26