Files
HSI/README.md

26 KiB
Raw Blame History

高光谱图像分类与分析工具包

Python Version License

一个全面的高光谱图像处理、分类和光谱分析工具包具有GUI就绪架构。

🌟 功能特性

🔬 光谱分析

  • 光谱指数计算: 计算各种植被、矿物和水体指数
  • 自定义公式支持: 定义和计算自定义光谱指数
  • 多格式支持: 处理CSV、ENVI.hdr/.dat和其他光谱数据格式

🤖 机器学习模型

  • 传统模型: 线性回归、岭回归、LASSO、弹性网络、贝叶斯岭回归
  • 集成方法: 随机森林、梯度提升、XGBoost、LightGBM、AdaBoost
  • 神经网络: MLP、LSTM、GRU支持TensorFlow/PyTorch
  • 专业模型: 支持向量回归、高斯过程、KNN

🔍 异常检测

  • 统计方法: 协方差估计异常检测、RX异常检测算法
  • 机器学习方法: 单类SVM异常检测、平方损失概率异常检测
  • 实时检测: 支持像素级和区域级异常识别
  • 多阈值支持: 可配置的异常判定阈值和置信度

🏷️ 分类分析

  • 传统算法: SVM、随机森林、KNN、逻辑回归、LDA/QDA
  • 集成方法: AdaBoost、XGBoost、LightGBM、CatBoost
  • 深度学习: 支持TensorFlow/PyTorch神经网络模型
  • 高光谱专用: 偏最小二乘判别分析(PLS-DA)
  • 模型评估: 完整的分类报告、混淆矩阵、精度召回率F1分数

📊 聚类分析

  • 无监督聚类: K-Means、层次聚类、DBSCAN、高斯混合模型
  • 监督聚类: 基于标记数据的引导聚类算法
  • 距离度量: 欧几里得距离、曼哈顿距离、余弦相似度等
  • 聚类评估: 轮廓系数、Calinski-Harabasz指数、Davies-Bouldin指数

🎨 颜色分析

  • 光谱转换: 高光谱数据转CIE XYZ三刺激值
  • 颜色空间: XYZ到RGB、LAB、LUV等颜色空间转换
  • 色差计算: CIE76、CIE94、CIEDE2000色差公式
  • 标准光源: D65、D50、A、F系列等标准照明体
  • 观察者模型: CIE 1931 2° 和 CIE 1964 10° 标准观察者

🎯 特征选择

  • 过滤方法: 相关系数、互信息、方差阈值、卡方检验
  • 包装方法: 递归特征消除(RFE)、前向选择、后向消除
  • 嵌入方法: LASSO、岭回归、决策树特征重要性
  • 专业算法: SPA(连续投影算法)、CARS、UVE、GA(遗传算法)、ReliefF
  • 批量处理: 支持多算法并行特征选择和结果对比

🖼️ 图像处理

  • 空间滤波: 均值、中值、高斯和双边滤波
  • 形态学滤波: 开运算、闭运算、腐蚀、膨胀、形态学梯度、顶帽变换、黑帽变换
  • 多波段支持: 处理单个波段或整个高光谱数据立方体
  • 格式保持: 保持原始数据类型和数值范围

🔧 数据预处理

  • 标准化处理: Z-score标准化、Min-Max归一化、鲁棒标准化
  • 异常值处理: 基于IQR的方法、孤立森林、局部异常因子
  • 数据转换: 对数变换、Box-Cox变换、指数变换
  • 缺失值处理: 均值填充、中位数填充、KNN填充、插值方法
  • 可视化分析: 数据分布图、相关性热力图、异常值检测图

🌿 PROSAIL模拟

  • 叶片光学: PROSPECT模型模拟叶片光谱反射特性
  • 冠层结构: SAIL模型模拟植被冠层结构影响
  • 土壤反射: 多种土壤类型的光谱反射模拟
  • 几何参数: 太阳天顶角、观测天顶角、相对方位角
  • 生物物理参数: 叶绿素含量、叶片结构参数、水分含量等

📊 降维分析

  • 主成分分析 (PCA): 最大化方差的线性降维
  • 独立成分分析 (ICA): 基于统计独立的信号分离
  • 因子分析 (FA): 基于潜在因子的降维方法
  • 线性判别分析 (LDA): 有监督的类别可分性最大化
  • 流形学习: MDS、Isomap、LLE、t-SNE 等非线性降维
  • 自动推荐: 根据数据类型和规模推荐最适合的方法

🎯 图像分割

  • 阈值分割: 固定阈值、直方图双峰法、迭代法、Otsu法、ISODATA
  • 自适应分割: 基于局部区域统计的自适应阈值
  • 批量处理: 支持多方法多波段的批量分割
  • 参数调优: 丰富的参数配置选项

边缘检测

  • 经典算子: Sobel、Scharr、Laplacian 算子
  • 高级方法: Laplacian of Gaussian (LoG)、Canny 算子
  • 参数可调: 每个方法都有丰富的参数配置选项
  • 预处理: 支持高斯模糊预处理以减少噪声
  • 多尺度: 支持不同尺度参数的边缘检测

📐 形状特征分析

  • 连通域分析: 自动识别和标记二值图像中的连通区域
  • 分水岭分割: 可选的分水岭算法用于分离相邻物体
  • 13种形状特征: 面积、周长、圆形度、矩形度、长宽比、紧密度、偏心率等
  • Hu矩提取: 具有平移、旋转和缩放不变性的形状描述符
  • 轮廓分析: 基于边缘坐标的形状特征计算
  • 多格式支持: 支持ENVI dat文件和shp矢量文件输入
  • CSV输出: 结构化的特征数据输出,包含边缘坐标信息

📋 系统要求

系统配置

  • Python 3.8 或更高版本
  • 4GB+ RAM推荐大型数据集使用8GB+
  • GPU 支持(可选,用于深度学习模型)

依赖包

核心依赖包(完整列表见 requirements.txt

numpy>=1.21.0
pandas>=1.3.0
scikit-learn>=1.0.0
matplotlib>=3.5.0
xgboost>=1.5.0
lightgbm>=3.3.0

可选依赖包:

  • tensorflowtorch 用于深度学习模型
  • spectral 用于ENVI文件处理
  • opencv-python 用于图像滤波

🚀 安装指南

1. 克隆仓库

git clone http://git.iris-rs.cn/zhanghuilai/HSI.git
cd HSI

2. 创建虚拟环境(推荐)

python -m venv hyperspectral_env
source hyperspectral_env/bin/activate  # Windows: hyperspectral_env\Scripts\activate

3. 安装依赖包

pip install -r requirements.txt

4. 根据需要安装可选依赖包

# 深度学习支持
pip install tensorflow  # 或 torch

# ENVI文件处理
pip install spectral

# 开发环境
pip install pytest jupyter

📖 使用方法

基础用法

# 1. 降维分析
from Dimensionality_Reduction_method.dimensionality_reduction import HyperspectralDimReduction, DimensionalityReductionConfig

config = DimensionalityReductionConfig(
    input_path="hyperspectral_data.hdr",
    method='pca',
    n_components=5,
    output_dir='results'
)
reducer = HyperspectralDimReduction(config)
reducer.load_data()
reduced_data, band_names = reducer.apply_dim_reduction()
reducer.save_results(reduced_data, band_names, 'pca_result.dat', 'pca')

# 2. 图像分割
from segment_method.threshold_Segment import ThresholdSegmenter, ThresholdSegmentationConfig

seg_config = ThresholdSegmentationConfig(
    input_path="hyperspectral_data.hdr",
    band_index=50,
    method='otsu',
    output_dir='segmentation_results'
)
segmenter = ThresholdSegmenter(seg_config)
segmenter.load_data()
segmented_data, threshold = segmenter.apply_segmentation()
segmenter.save_results(segmented_data, threshold, 'otsu_result.dat', 'otsu')

# 3. 边缘检测
from edge_detect_method.edge_detect import EdgeDetector, EdgeDetectionConfig

edge_config = EdgeDetectionConfig(
    input_path="hyperspectral_data.hdr",
    band_index=30,
    method='canny',
    output_dir='edge_results'
)
detector = EdgeDetector(edge_config)
detector.load_data()
edge_data, info = detector.apply_edge_detection()
detector.save_results(edge_data, info, 'canny_result.dat', 'canny')

新功能使用示例

# 降维分析 - 批量处理多种方法
from Dimensionality_Reduction_method.dimensionality_reduction import HyperspectralDimReduction, DimensionalityReductionConfig

config = DimensionalityReductionConfig(
    input_path="data.hdr",
    output_dir="dim_reduction_results"
)
reducer = HyperspectralDimReduction(config)
reducer.load_data()

# 批量应用多种降维方法
methods = ['pca', 'ica', 'fa', 'lda']  # 如果有标签
components = [5, 5, 5, 3]
results = reducer.batch_process(methods, components, "dim_reduction_results")

# 图像分割 - 参数调优
from segment_method.threshold_Segment import ThresholdSegmenter, ThresholdSegmentationConfig

seg_config = ThresholdSegmentationConfig(
    input_path="data.hdr",
    band_index=100,
    method='otsu',
    output_dir="segmentation_results"
)
segmenter = ThresholdSegmenter(seg_config)
segmenter.load_data()

# 批量应用多种分割方法
methods = ['otsu', 'isodata', 'adaptive', 'iterative']
bands = [100, 100, 100, 100]
results = segmenter.batch_process(methods, bands, "segmentation_results")

# 边缘检测 - 高级参数配置
from edge_detect_method.edge_detect import EdgeDetector, EdgeDetectionConfig

edge_config = EdgeDetectionConfig(
    input_path="data.hdr",
    band_index=50,
    method='canny',
    canny_min_threshold=50,
    canny_max_threshold=150,
    use_blur=True,
    blur_sigma=1.5,
    output_dir="edge_results"
)
detector = EdgeDetector(edge_config)
detector.load_data()

# 批量应用多种边缘检测方法
methods = ['sobel', 'scharr', 'laplacian', 'log', 'canny']
bands = [50, 50, 50, 50, 50]
results = detector.batch_process(methods, bands, "edge_results")

# 4. 形状特征分析 - 高级配置
from spatial_features_method.shape_feature import ShapeFeatureConfig, analyze_shape_features

shape_config = ShapeFeatureConfig()
shape_config.input_type = 'dat'
shape_config.dat_file_path = "segmented_image.dat"
shape_config.hdr_file_path = "segmented_image.hdr"
shape_config.band_index = 0
shape_config.connectivity = 8  # 8连通
shape_config.min_area = 100  # 过滤小区域
shape_config.use_watershed = True  # 启用分水岭算法
shape_config.watershed_min_distance = 15  # 分水岭参数
shape_config.output_dir = "shape_analysis_results"

# 执行形状特征分析
features_df, labeled_image = analyze_shape_features(shape_config)
print(f"分析完成,发现 {len(features_df)} 个有效区域")
print("提取的特征包括面积、周长、圆形度、Hu矩等")

命令行使用

# 光谱指数计算
python spectral_index_method/spectral_index.py input.hdr -i NDVI EVI -o results

# 批量计算所有光谱指数并生成PNG可视化
python spectral_index_method/spectral_index.py input.hdr -A -p -o batch_results

# 图像滤波
python fliter_method/Smooth_filter.py input.hdr -f mean -k 3 -b 20 -o filtered_output

# 降维分析(运行内置示例)
python Dimensionality_Reduction_method/dimensionality_reduction.py

# 图像分割(运行内置示例)
python segment_method/threshold_Segment.py

# 边缘检测(运行内置示例)
python edge_detect_method/edge_detect.py

# 异常检测
python Anomaly_method/Covariance.py input.hdr -c 0.1 -o anomaly_results

# 分类分析
python classfication_method/classfication.py input.hdr labels.csv -m svm -o classification_results

# 聚类分析
python cluster_method/cluster.py input.hdr -m kmeans -n 5 -o cluster_results

# 特征选择
python Feature_Selection_method/feture_select.py input.csv target_column -m spa -f 20 -o feature_results

# 颜色分析
python color_method/DeltaE.py lab_image.hdr standard_colors.csv -m CIEDE2000 -o color_results

# 数据预处理
python preprocessing_method/Preprocessing.py input.csv -m standard -o preprocessed_data

# GUI界面启动
python hyperspectral_gui_tkinter.py

高级配置

# 自定义回归配置
config = RegressionConfig()
config.data.csv_path = "data.csv"
config.data.label_column = "chlorophyll"
config.data.spectrum_columns = "10:200"  # 波长范围
config.models.tune_hyperparams = True
config.models.model_names = ['ridge', 'lasso', 'xgboost']
config.output.save_models = True

analyzer = RegressionAnalyzer(config)
results = analyzer.run_analysis_from_config()

快速开始 - 新功能

# 1. 降维分析快速开始
from Dimensionality_Reduction_method.dimensionality_reduction import *

config = DimensionalityReductionConfig(
    input_path="your_data.hdr",
    method='pca',
    n_components=3
)
processor = HyperspectralDimReduction(config)
processor.load_data()
reduced_data, bands = processor.apply_dim_reduction()

# 2. 图像分割快速开始
from segment_method.threshold_Segment import *

config = ThresholdSegmentationConfig(
    input_path="your_data.hdr",
    band_index=100,
    method='otsu'
)
processor = ThresholdSegmenter(config)
processor.load_data()
segmented, threshold = processor.apply_segmentation()

# 3. 边缘检测快速开始
from edge_detect_method.edge_detect import *

config = EdgeDetectionConfig(
    input_path="your_data.hdr",
    band_index=50,
    method='canny'
)
processor = EdgeDetector(config)
processor.load_data()
edges, info = processor.apply_edge_detection()

# 4. 形状特征分析快速开始
from spatial_features_method.shape_feature import *

config = ShapeFeatureConfig()
config.input_type = 'dat'  # 或 'shp'
config.dat_file_path = "segmented_data.dat"
config.hdr_file_path = "segmented_data.hdr"
config.band_index = 0
config.use_watershed = False  # 是否使用分水岭算法
config.min_area = 50  # 最小区域面积

features_df, labeled_image = analyze_shape_features(config)

# 5. 光谱指数批量计算和PNG可视化
from spectral_feature_method.spectral_index import *

# 配置批量计算所有指数并生成PNG
config = SpectralIndexConfig.create_quick_analysis(
    data_file_path="hyperspectral_data.hdr",
    indices_to_calculate=None  # None = 所有指数
)
config.output.save_png_visualization = True
config.output.png_filename = "all_indices_visualization.png"

calculator = HyperspectralIndexCalculator(config)
results, fig = calculator.batch_calculate_and_visualize()

# 6. 异常检测快速开始
from Anomaly_method.Covariance import CovarianceAnomalyDetector, CovarianceAnomalyConfig

config = CovarianceAnomalyConfig(
    input_path="hyperspectral_data.hdr",
    contamination=0.1,  # 异常样本比例
    random_state=42
)
detector = CovarianceAnomalyDetector(config)
detector.load_data()
anomaly_scores, anomaly_labels = detector.detect_anomalies()

# 7. 分类分析快速开始
from classfication_method.classfication import HyperspectralClassifier, ClassificationConfig

config = ClassificationConfig(
    input_path="hyperspectral_data.hdr",
    label_path="labels.csv",
    method='svm',
    test_size=0.3
)
classifier = HyperspectralClassifier(config)
classifier.load_data()
results = classifier.train_and_evaluate()

# 8. 聚类分析快速开始
from cluster_method.cluster import HyperspectralClusterer, ClusteringConfig

config = ClusteringConfig(
    input_path="hyperspectral_data.hdr",
    method='kmeans',
    n_clusters=5,
    random_state=42
)
clusterer = HyperspectralClusterer(config)
clusterer.load_data()
labels, centers = clusterer.perform_clustering()

# 9. 特征选择快速开始
from Feature_Selection_method.feture_select import FeatureSelector, FeatureSelectionConfig

config = FeatureSelectionConfig(
    data_path="hyperspectral_data.csv",
    label_column="target",
    method='spa',
    n_features=20
)
selector = FeatureSelector(config)
selector.load_data()
selected_features, scores = selector.select_features()

# 10. 颜色分析快速开始
from color_method.DeltaE import ColorDifferenceCalculator, ColorDifferenceConfig

config = ColorDifferenceConfig(
    lab_image_path="lab_image.hdr",
    standard_colors_path="standard_colors.csv",
    method='CIEDE2000'
)
calculator = ColorDifferenceCalculator(config)
color_differences = calculator.calculate_differences()

# 11. 预处理快速开始
from preprocessing_method.Preprocessing import DataPreprocessor, PreprocessingConfig

config = PreprocessingConfig(
    input_path="raw_data.csv",
    method='standard',  # 标准化
    handle_outliers=True,
    outlier_method='iqr'
)
preprocessor = DataPreprocessor(config)
processed_data = preprocessor.process()

# 12. 形态学滤波快速开始
from fliter_method.morphological_fliter import MorphologicalFilter, MorphologicalFilterConfig

config = MorphologicalFilterConfig(
    input_path="hyperspectral_data.hdr",
    band_index=50,
    operation='opening',
    kernel_size=3
)
filter_obj = MorphologicalFilter(config)
filtered_data = filter_obj.apply_filter()

📁 项目结构

hyperspectral-toolkit/
├── Anomaly_method/
│   ├── Covariance.py           # 协方差异常检测
│   ├── One_Class_SVM.py        # 单类SVM异常检测
│   ├── RX.py                   # RX异常检测算法
│   └── squared_loss_probability.py # 平方损失概率异常检测
├── rgression_method/
│   ├── regression.py           # 回归分析模块
│   └── regression_predict.py   # 回归预测工具
├── classfication_method/
│   ├── classfication.py        # 分类分析模块
│   └── bil2png.py              # 图像格式转换
├── cluster_method/
│   └── cluster.py              # 无监督聚类算法
├── supervize_cluster_method/
│   └── supervize_cluster.py    # 监督聚类算法
├── color_method/
│   ├── DeltaE.py               # 色差计算
│   ├── spectral2cie2.py        # 光谱到CIE转换
│   └── XYZ2RGB.py              # XYZ到RGB转换
├── Dimensionality_Reduction_method/
│   └── dimensionality_reduction.py  # 降维分析
├── segment_method/
│   └── threshold_Segment.py    # 阈值分割
├── edge_detect_method/
│   └── edge_detect.py          # 边缘检测
├── fliter_method/
│   ├── Smooth_filter.py        # 空间滤波模块
│   └── morphological_fliter.py # 形态学滤波
├── spectral_feature_method/
│   └── spectral_index.py       # 光谱指数计算器
├── preprocessing_method/
│   ├── Preprocessing.py        # 数据预处理
│   └── plot.py                 # 预处理可视化
├── spatial_features_method/
│   ├── shape_feature.py        # 形状特征分析模块
│   ├── get_glcm.py             # GLCM纹理特征计算
│   ├── glcm.py                 # GLCM纹理分析
│   └── plot.py                 # 特征可视化工具
├── Feature_Selection_method/
│   ├── feture_select.py        # 特征选择主模块
│   ├── batch_feature_selection.py # 批量特征选择
│   ├── Cars.py                 # CARS算法
│   ├── GA.py                   # 遗传算法特征选择
│   ├── Lar.py                  # LAR算法
│   ├── random_fog.py           # 随机蛙跳算法
│   ├── ReliefF.py              # ReliefF算法
│   ├── sipls.py                # SIPLS算法
│   ├── Spa.py                  # SPA算法
│   └── Uve.py                  # UVE算法
├── prosail_method/
│   ├── prosail_gui.py          # PROSAIL GUI界面
│   ├── README.md               # PROSAIL说明文档
│   ├── modules/                # PROSAIL核心模块
│   └── data/                   # PROSAIL数据文件
├── data/
│   ├── class.csv               # 分类数据
│   └── roi.xml                 # ROI标注数据
├── requirements.txt            # 依赖包列表
├── README.md                   # 本文件
├── PROJECT_DOCUMENTATION.md    # 完整技术文档
└── shuoming.py                 # 说明文件

🔧 配置系统

该工具包使用为GUI集成设计的分层配置系统

数据配置

@dataclass
class DataConfig:
    csv_path: str = ""
    label_column: Union[str, int] = ""
    spectrum_columns: Optional[Union[str, List]] = None
    test_size: float = 0.2
    scale_method: str = 'standard'

模型配置

@dataclass
class ModelConfig:
    model_names: Optional[List[str]] = None  # None = 所有模型
    tune_hyperparams: bool = True
    tuning_method: str = 'grid'
    cv_folds: int = 5

训练配置

@dataclass
class TrainingConfig:
    epochs: int = 100
    batch_size: int = 32
    learning_rate: float = 0.001

🎨 可用算法

降维方法

  • 线性方法: PCA (主成分分析)、ICA (独立成分分析)、FA (因子分析)
  • 监督方法: LDA (线性判别分析)
  • 非线性方法: MDS (多维尺度分析)、Isomap (等度量映射)、LLE (局部线性嵌入)、t-SNE (t-分布随机邻域嵌入)
  • 智能推荐: 基于数据类型和规模的自动方法推荐

分割方法

  • 阈值分割: 固定阈值、直方图双峰法、迭代法阈值分割
  • 自适应分割: 基于局部统计的自适应阈值
  • 自动方法: Otsu (大津法)、ISODATA 阈值分割
  • 参数调优: 丰富的参数配置和批量处理支持

边缘检测方法

  • 一阶导数: Sobel 算子、Scharr 算子
  • 二阶导数: Laplacian 算子
  • 复合方法: Laplacian of Gaussian (LoG)、Canny 算子
  • 参数控制: 核大小、阈值、尺度参数等全面可调

形状特征分析

  • 连通域分析: 4/8连通的连通域标记和分析
  • 分水岭分割: 基于距离变换的分水岭算法用于物体分离
  • 几何特征: 面积、周长、质心坐标、边界框
  • 形状描述符: 圆形度、矩形度、长宽比、紧密度、偏心率
  • 矩特征: Hu不变矩7个、中心矩
  • 拓扑特征: 凸性、固体度、轮廓复杂度

回归模型

  • 线性模型: 线性回归、岭回归、LASSO、弹性网络、贝叶斯岭回归
  • 集成模型: 随机森林、梯度提升、AdaBoost
  • 提升模型: XGBoost、LightGBM
  • 神经网络: MLP、LSTM、GRU
  • 专业模型: SVR、高斯过程、KNN

光谱指数

  • 植被指数: NDVI、EVI、ARVI、SAVI 等
  • 水体指数: NDWI、MNDWI 等
  • 矿物指数: 各种矿物特定指数
  • 自定义指数: 用户定义的公式

异常检测算法

  • 统计方法: 协方差估计异常检测、RX异常检测算法
  • 机器学习方法: 单类SVM异常检测、平方损失概率异常检测
  • 参数配置: 污染度阈值、置信度水平、可视化选项
  • 输出格式: 异常分数、异常标签、二值化结果

分类算法

  • 传统算法: SVM、随机森林、KNN、逻辑回归、LDA/QDA
  • 集成方法: AdaBoost、XGBoost、LightGBM、CatBoost
  • 深度学习: TensorFlow/PyTorch神经网络支持
  • 高光谱专用: PLS-DA偏最小二乘判别分析
  • 模型评估: 完整的性能指标和混淆矩阵分析

聚类算法

  • 划分方法: K-Means、K-Medoids
  • 层次方法: 凝聚层次聚类、分裂层次聚类
  • 密度方法: DBSCAN、OPTICS、高斯混合模型
  • 评估指标: 轮廓系数、Calinski-Harabasz指数、Davies-Bouldin指数
  • 可视化: 聚类结果二维/三维可视化

特征选择算法

  • 过滤方法: 方差阈值、相关系数、互信息、卡方检验
  • 包装方法: RFE递归特征消除、前向选择、后向消除
  • 嵌入方法: LASSO、岭回归、随机森林特征重要性
  • 专业算法: SPA(连续投影算法)、CARS、UVE、GA(遗传算法)、ReliefF
  • 评估框架: 交叉验证稳定性、特征重要性排序

颜色处理算法

  • 光谱转换: 高光谱到XYZ三刺激值、XYZ到RGB转换
  • 色差计算: CIE76、CIE94、CIEDE2000色差公式
  • 标准观察者: CIE 1931 2°、CIE 1964 10° 标准观察者
  • 标准光源: D65、D50、A、F系列标准照明体
  • 配对比较: 任意颜色样本间的色差分析

预处理算法

  • 标准化: Z-score标准化、Min-Max归一化、鲁棒标准化
  • 异常值处理: IQR方法、孤立森林、局部异常因子
  • 数据转换: 对数变换、Box-Cox变换、指数变换
  • 缺失值处理: 均值/中位数/众数填充、KNN填充、插值方法
  • 质量评估: 数据分布分析、相关性热力图、异常值检测

🚀 新功能特性详情

📊 降维分析系统

  • 智能推荐: 根据数据类型(图像/CSV、样本数量和特征维度自动推荐最适合的降维方法
  • 8种降维算法: 从经典的PCA到先进的t-SNE覆盖线性到非线性方法
  • 批量处理: 支持一次运行多种降维方法进行对比分析
  • 详细报告: 自动生成包含方法适用性和推荐理由的分析报告

🎯 阈值分割系统

  • 6种分割方法: 覆盖从简单固定阈值到高级Otsu和ISODATA方法
  • 参数开放性: 每个方法都有丰富的参数配置选项
  • 批量对比: 支持多方法多波段的批量分割处理
  • 自动阈值: 智能阈值选择和手动调优选项

边缘检测系统

  • 5种检测算法: 从基础的Sobel算子到先进的Canny算法
  • 参数可调: 每个方法都有全面的参数控制选项
  • 预处理支持: 可选的高斯模糊预处理以减少噪声影响
  • 多尺度分析: 支持不同尺度参数的边缘特征提取

📐 形状特征分析系统

  • 智能连通域分析: 支持4连通和8连通的连通域标记
  • 分水岭物体分离: 可选的分水岭算法自动分离粘连物体
  • 13种形状特征: 从基本几何特征到高级形状描述符的全面分析
  • Hu不变矩: 7个具有平移、旋转、缩放不变性的形状特征
  • 轮廓坐标保存: 完整的边缘坐标信息保存,便于后续分析
  • 多格式输入: 支持ENVI二值图像和shp矢量文件的输入

🎨 高级特性

  • 配置驱动: 所有模块都使用统一的数据类配置系统
  • 批量处理: 支持多参数、多方法的批量对比分析
  • 智能验证: 全面的参数校验和错误处理
  • ENVI兼容: 完整的ENVI格式输入输出支持
  • 文档齐全: 每个方法都有详细的使用说明和参数解释

📊 输出格式

  • ENVI格式: 标准高光谱数据格式(.dat + .hdr包含详细的处理信息和参数
  • CSV: 包含统计信息和结果的表格数据
  • 图像: PNG格式的可视化结果和图表
  • 模型: Pickle格式的sklearn模型用于部署
  • 配置: JSON格式的参数配置保存和恢复
  • 轮廓数据: JSON格式的形状轮廓坐标信息形状特征分析专用
  • 标记图像: 带标签的分割结果图像ENVI + PNG格式