增加模块;增加主调用命令

This commit is contained in:
2026-01-07 16:36:47 +08:00
commit 2d4b170a45
109 changed files with 55763 additions and 0 deletions

724
README.md Normal file
View File

@ -0,0 +1,724 @@
# 高光谱图像分类与分析工具包
[![Python Version](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/)
[![License](https://img.shields.io/badge/license-MIT-green.svg)](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
```
可选依赖包:
- `tensorflow``torch` 用于深度学习模型
- `spectral` 用于ENVI文件处理
- `opencv-python` 用于图像滤波
## 🚀 安装指南
### 1. 克隆仓库
```bash
git clone http://git.iris-rs.cn/zhanghuilai/HSI.git
cd HSI
```
### 2. 创建虚拟环境(推荐)
```bash
python -m venv hyperspectral_env
source hyperspectral_env/bin/activate # Windows: hyperspectral_env\Scripts\activate
```
### 3. 安装依赖包
```bash
pip install -r requirements.txt
```
### 4. 根据需要安装可选依赖包
```bash
# 深度学习支持
pip install tensorflow # 或 torch
# ENVI文件处理
pip install spectral
# 开发环境
pip install pytest jupyter
```
## 📖 使用方法
### 基础用法
```python
# 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')
```
### 新功能使用示例
```python
# 降维分析 - 批量处理多种方法
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矩等")
```
### 命令行使用
```bash
# 光谱指数计算
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
```
### 高级配置
```python
# 自定义回归配置
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()
```
### 快速开始 - 新功能
```python
# 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集成设计的分层配置系统
### 数据配置
```python
@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'
```
### 模型配置
```python
@dataclass
class ModelConfig:
model_names: Optional[List[str]] = None # None = 所有模型
tune_hyperparams: bool = True
tuning_method: str = 'grid'
cv_folds: int = 5
```
### 训练配置
```python
@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格式