Files
HSI/AUTOMATED_TESTS.md

464 lines
29 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 高光谱分析工具包自动测试文档
本文档包含了高光谱分析工具包所有功能的自动化测试命令。这些测试命令可以用来验证各个模块的功能是否正常工作。
## 测试环境要求
- Python 3.7+
- 已安装所有依赖包(见 requirements.txt
- 测试数据文件存在于指定路径
## 测试命令列表
### 1. 降维分析 (dim-reduction)
```bash
# PCA降维测试
python main.py dim-reduction --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method pca --n-components 3 --output-file E:\code\spectronon\20251226\output\pca.dat
# ICA降维测试
python main.py dim-reduction --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method ica --n-components 5 --output-file E:\code\spectronon\20251226\output\ica.dat
# FA因子分析降维测试
python main.py dim-reduction --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method fa --n-components 4 --output-file E:\code\spectronon\20251226\output\fa.dat
# LDA线性判别分析降维测试
#python main.py dim-reduction --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method lda --n-components 2 --output-file E:\code\spectronon\20251226\output\lda.dat
# MDS多维标度法降维测试
python main.py dim-reduction --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method mds --n-components 3 --output-file E:\code\spectronon\20251226\output\mds.dat
# Isomap等距映射降维测试
python main.py dim-reduction --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method isomap --n-components 3 --output-file E:\code\spectronon\20251226\output\isomap.dat
# LLE局部线性嵌入降维测试
python main.py dim-reduction --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method lle --n-components 2 --output-file E:\code\spectronon\20251226\output\lte.dat
# t-SNE降维测试
python main.py dim-reduction --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method t-sne --n-components 2 --output-file E:\code\spectronon\20251226\output\tsne.dat
# 批量降维测试
python main.py dim-reduction --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --batch-methods pca ica fa lda --batch-components 3 4 3 2 --output-dir E:\code\spectronon\20251226\output
```
### 2. 图像分割 (segmentation)
```bash
# 固定阈值分割测试
#python main.py segmentation --input "E:\code\spectronon\20251226\data\GreenPaintChipsSmall.bip.hdr" --method fixed --band-index 50 --threshold 128 --output-dir E:\code\spectronon\20251226\output
# 迭代法分割测试
python main.py segmentation --input "E:\code\spectronon\20251226\data\GreenPaintChipsSmall.bip.hdr" --method iterative --band-index 30 --max-iterations 100 --convergence-threshold 0.01 --output-dir E:\code\spectronon\20251226\output
# Otsu分割测试
python main.py segmentation --input "E:\code\spectronon\20251226\data\GreenPaintChipsSmall.bip.hdr" --method otsu --band-index 50 --output-dir E:\code\spectronon\20251226\output
# ISODATA分割测试
python main.py segmentation --input "E:\code\spectronon\20251226\data\GreenPaintChipsSmall.bip.hdr" --method isodata --band-index 40 --output-dir E:\code\spectronon\20251226\output
# 自适应分割测试
python main.py segmentation --input "E:\code\spectronon\20251226\data\GreenPaintChipsSmall.bip.hdr" --method adaptive --band-index 25 --adaptive-block-size 15 --output-dir E:\code\spectronon\20251226\output
# 批量分割测试
#python main.py segmentation --input "E:\code\spectronon\20251226\data\GreenPaintChipsSmall.bip.hdr" --batch-methods fixed otsu adaptive isodata --batch-bands 20 30 40 50 --output-dir E:\code\spectronon\20251226\output
```
### 3. 边缘检测 (edge-detection)
```bash
## Sobel边缘检测测试
#python main.py edge-detection --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method sobel --edge-band-index 25 --sobel-dx 1 --sobel-dy 0 --output-dir E:\code\spectronon\20251226\output
# Scharr边缘检测测试
python main.py edge-detection --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method scharr --edge-band-index 25 --output-dir E:\code\spectronon\20251226\output
# Laplacian边缘检测测试
python main.py edge-detection --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method laplacian --edge-band-index 25 --laplacian-ksize 1 --laplacian-scale 1.0 --output-dir E:\code\spectronon\20251226\output
# LoG边缘检测测试
python main.py edge-detection --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method log --edge-band-index 25 --log-sigma 1.0 --log-threshold 0.0 --output-dir E:\code\spectronon\20251226\output
# Canny边缘检测测试
python main.py edge-detection --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method canny --edge-band-index 25 --canny-min-threshold 50 --canny-max-threshold 150 --output-dir E:\code\spectronon\20251226\output
# 批量边缘检测测试
python main.py edge-detection --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --batch --batch-bands 10 25 50 --output-dir E:\code\spectronon\20251226\output
```
### 4. 异常检测 (anomaly-detection)
```bash
# 协方差异常检测测试
python main.py anomaly-detection --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method covariance --contamination 0.1 --output-file "E:\code\spectronon\20251226\output\covariance.dat"
# One-Class SVM RBF核异常检测测试
python main.py anomaly-detection --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method one-class-svm --ocsvm-kernel rbf --ocsvm-nu 0.1 --output-file "E:\code\spectronon\20251226\output\svm_rbf.dat"
# One-Class SVM多项式核异常检测测试
python main.py anomaly-detection --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method one-class-svm --ocsvm-kernel poly --ocsvm-degree 3 --ocsvm-use-grid-search --output-file "E:\code\spectronon\20251226\output\svmano_poly.dat"
# RX全局背景异常检测测试
python main.py anomaly-detection --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method rx --background-model global --contamination 0.1 --output-file "E:\code\spectronon\20251226\output\rx_global.dat"
# RX局部窗口异常检测测试
python main.py anomaly-detection --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method rx --background-model local_square --window-size 7 --contamination 0.1 --output-file "E:\code\spectronon\20251226\output\rx_local.dat"
# Squared Loss Probability异常检测测试
python main.py anomaly-detection --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method squared-loss-probability --contamination 0.1 --output-file "E:\code\spectronon\20251226\output\slp.dat"
# Squared Loss with PCA异常检测测试
python main.py anomaly-detection --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method squared-loss-probability --reconstruction-method pca --slp-n-components 10 --output-file "E:\code\spectronon\20251226\output\slp_pca.dat"
# Squared Loss with Linear重构异常检测测试
python main.py anomaly-detection --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method squared-loss-probability --reconstruction-method linear --target-band 50 --probability-mode --output-file "E:\code\spectronon\20251226\output\slp_linear.dat"
```
### 5. 分类分析 (classification)
```bash
# SVM RBF核分类测试
python main.py classification --input "E:\code\spectronon\20251226\data\GreenPaintChipsSmall.bip" --roi-file "E:\code\spectronon\20251226\data\roi.xml" --method svm --svm-kernel rbf --output-file E:\code\spectronon\20251226\output\svm_rbf.dat
# SVM线性核分类测试
python main.py classification --input "E:\code\spectronon\20251226\data\GreenPaintChipsSmall.bip" --roi-file "E:\code\spectronon\20251226\data\roi.xml" --method svm --svm-kernel linear --output-file E:\code\spectronon\20251226\output\svm_linear.dat
# 随机森林分类测试
python main.py classification --input "E:\code\spectronon\20251226\data\GreenPaintChipsSmall.bip" --roi-file "E:\code\spectronon\20251226\data\roi.xml" --method random_forest --rf-n-estimators 100 --rf-max-depth 10 --output-file E:\code\spectronon\20251226\output\rf.dat
# KNN分类测试
python main.py classification --input "E:\code\spectronon\20251226\data\GreenPaintChipsSmall.bip" --roi-file "E:\code\spectronon\20251226\data\roi.xml" --method knn --knn-n-neighbors 5 --output-file E:\code\spectronon\20251226\output\knn.dat
# 逻辑回归分类测试
python main.py classification --input "E:\code\spectronon\20251226\data\GreenPaintChipsSmall.bip" --roi-file "E:\code\spectronon\20251226\data\roi.xml" --method logistic_regression --lr-c 1.0 --output-file E:\code\spectronon\20251226\output\lr.dat
# 线性判别分析分类测试
python main.py classification --input "E:\code\spectronon\20251226\data\GreenPaintChipsSmall.bip" --roi-file "E:\code\spectronon\20251226\data\roi.xml" --method linear_discriminant --output-file E:\code\spectronon\20251226\output\lda.dat
# 二次判别分析分类测试
python main.py classification --input "E:\code\spectronon\20251226\data\GreenPaintChipsSmall.bip" --roi-file "E:\code\spectronon\20251226\data\roi.xml" --method quadratic_discriminant --output-file E:\code\spectronon\20251226\output\qda.dat
# PLS-DA分类测试
python main.py classification --input "E:\code\spectronon\20251226\data\GreenPaintChipsSmall.bip" --roi-file "E:\code\spectronon\20251226\data\roi.xml" --method plsda --pls-n-components 10 --output-file E:\code\spectronon\20251226\output\plsda.dat
# XGBoost分类测试
python main.py classification --input "E:\code\spectronon\20251226\data\GreenPaintChipsSmall.bip" --roi-file "E:\code\spectronon\20251226\data\roi.xml" --method xgboost --xgb-n-estimators 100 --xgb-max-depth 6 --output-file E:\code\spectronon\20251226\output\xgb.dat
# LightGBM分类测试
python main.py classification --input "E:\code\spectronon\20251226\data\GreenPaintChipsSmall.bip" --roi-file "E:\code\spectronon\20251226\data\roi.xml" --method lightgbm --lgb-n-estimators 100 --lgb-learning-rate 0.1 --output-file E:\code\spectronon\20251226\output\lgb.dat
# CatBoost分类测试
python main.py classification --input "E:\code\spectronon\20251226\data\GreenPaintChipsSmall.bip" --roi-file "E:\code\spectronon\20251226\data\roi.xml" --method catboost --cb-n-estimators 100 --cb-depth 6 --output-file E:\code\spectronon\20251226\output\cb.dat
```
### 6. 聚类分析 (clustering)
```bash
# K-means聚类测试
python main.py clustering --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method kmeans --n-clusters 5 --use-scaling --output-dir E:\code\spectronon\20251226\output
# 模糊C均值聚类测试
python main.py clustering --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method fuzzy-cmeans --n-clusters 4 --fcm-m 2.0 --fcm-error 0.005 --output-dir E:\code\spectronon\20251226\output
# GMM高斯混合模型聚类测试
python main.py clustering --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method gmm --n-clusters 4 --gmm-covariance-type full --output-dir E:\code\spectronon\20251226\output
# 层次聚类测试
python main.py clustering --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method hierarchical --n-clusters 3 --hier-linkage ward --hier-affinity euclidean --output-dir E:\code\spectronon\20251226\output
# DBSCAN密度聚类测试
python main.py clustering --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method dbscan --dbscan-eps 0.5 --dbscan-min-samples 5 --output-dir E:\code\spectronon\20251226\output
# 谱聚类测试
python main.py clustering --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method spectral --n-clusters 3 --spectral-affinity rbf --output-dir E:\code\spectronon\20251226\output
# 子空间聚类测试
python main.py clustering --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method subspace --n-clusters 4 --output-dir E:\code\spectronon\20251226\output
# 集成聚类测试
python main.py clustering --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method ensemble --n-clusters 3 --ensemble-voting hard --output-dir E:\code\spectronon\20251226\output
# 批量聚类测试
python main.py clustering --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --batch --n-clusters 4 --output-dir E:\code\spectronon\20251226\output
```
### 7. 监督分类 (supervised-classification)
```bash
# 监督分类测试(所有方法)
python main.py supervised-classification --input "E:\code\spectronon\20251226\data\GreenPaintChipsSmall.bip.hdr" --method all --xml_file "E:\code\spectronon\20251226\data\roi.xml" --visualize --output-dir E:\code\spectronon\20251226\output
# 欧氏距离监督分类测试
python main.py supervised-classification --input "E:\code\spectronon\20251226\data\GreenPaintChipsSmall.bip.hdr" --method euclidean --xml_file "E:\code\spectronon\20251226\data\roi.xml" --output-dir E:\code\spectronon\20251226\output
# 余弦距离监督分类测试
python main.py supervised-classification --input "E:\code\spectronon\20251226\data\GreenPaintChipsSmall.bip.hdr" --method cosine --xml_file "E:\code\spectronon\20251226\data\roi.xml" --output-dir E:\code\spectronon\20251226\output
```
### 8. 特征选择 (feature-selection)
```bash
# SPA特征选择测试
python main.py feature-selection --input "E:\code\spectronon\20251226\data\class.csv" --method Spa --label-column label --n-features 15 --spectral-columns "1:114" --output-dir E:\code\spectronon\20251226\output
# CARS特征选择测试
python main.py feature-selection --input "E:\code\spectronon\20251226\data\class.csv" --method Cars --label-column label --n-features 20 --cars-n 30 --output-dir E:\code\spectronon\20251226\output
# UVE特征选择测试
python main.py feature-selection --input "E:\code\spectronon\20251226\data\class.csv" --method Uve --label-column label --n-features 25 --uve-ncomp 15 --output-dir E:\code\spectronon\20251226\output
# GA遗传算法特征选择测试
python main.py feature-selection --input "E:\code\spectronon\20251226\data\class.csv" --method GA --label-column label --n-features 10 --ga-population-size 20 --ga-n-generations 30 --output-dir E:\code\spectronon\20251226\output
# Relief-F特征选择测试
python main.py feature-selection --input "E:\code\spectronon\20251226\data\class.csv" --method ReliefF --label-column label --n-features 15 --relief-k 10 --output-dir E:\code\spectronon\20251226\output
# SiPLS特征选择测试
python main.py feature-selection --input "E:\code\spectronon\20251226\data\class.csv" --method SiPLS --label-column label --n-features 20 --sipls-interval-width 10 --output-dir E:\code\spectronon\20251226\output
# LARS特征选择测试
python main.py feature-selection --input "E:\code\spectronon\20251226\data\class.csv" --method Lars --label-column label --n-features 15 --lar-cv 5 --output-dir E:\code\spectronon\20251226\output
# Random Frog特征选择测试
python main.py feature-selection --input "E:\code\spectronon\20251226\data\class.csv" --method RandomFrog --label-column label --n-features 18 --random-frog-n-frogs 50 --output-dir E:\code\spectronon\20251226\output
```
### 9. 光谱指数 (spectral-index)
```bash
# 批量光谱指数计算测试
python main.py spectral-index --input "E:\code\spectronon\20251226\data\class.csv" --batch --output-dir E:\code\spectronon\20251226\output --data-format csv --label-column Label --spectral-start 1 --spectral-end 114 --index-csv "E:\code\spectronon\20251226\data\spectral_index.csv" --formula-csv E:\code\spectronon\20251226\data\famula.csv
```
### 10. 数据预处理 (preprocessing)
```bash
# Min-Max标准化预处理测试
python main.py preprocessing --input "E:\code\spectronon\20251226\data\class.csv" --method MMS --spectral-start-index 1 --output-dir E:\code\spectronon\20251226\output
# 标准化预处理测试
python main.py preprocessing --input "E:\code\spectronon\20251226\data\class.csv" --method SS --spectral-start-index 1 --output-dir E:\code\spectronon\20251226\output
# 中心化预处理测试
python main.py preprocessing --input "E:\code\spectronon\20251226\data\class.csv" --method CT --spectral-start-index 1 --output-dir E:\code\spectronon\20251226\output
# SNV预处理测试
python main.py preprocessing --input "E:\code\spectronon\20251226\data\class.csv" --method SNV --spectral-start-index 1 --output-dir E:\code\spectronon\20251226\output
# 移动平均平滑测试
python main.py preprocessing --input "E:\code\spectronon\20251226\data\class.csv" --method MA --spectral-start-index 1 --ma-window 5 --output-dir E:\code\spectronon\20251226\output
# Savitzky-Golay平滑测试
python main.py preprocessing --input "E:\code\spectronon\20251226\data\class.csv" --method SG --spectral-start-index 1 --sg-window 15 --sg-poly 2 --output-dir E:\code\spectronon\20251226\output
# 一阶导数测试
python main.py preprocessing --input "E:\code\spectronon\20251226\data\class.csv" --method D1 --spectral-start-index 1 --output-dir E:\code\spectronon\20251226\output
# 二阶导数测试
python main.py preprocessing --input "E:\code\spectronon\20251226\data\class.csv" --method D2 --spectral-start-index 1 --output-dir E:\code\spectronon\20251226\output
# 导数测试DT
python main.py preprocessing --input "E:\code\spectronon\20251226\data\class.csv" --method DT --spectral-start-index 1 --output-dir E:\code\spectronon\20251226\output
# 多重散射校正测试
python main.py preprocessing --input "E:\code\spectronon\20251226\data\class.csv" --method MSC --spectral-start-index 1 --output-dir E:\code\spectronon\20251226\output
# 小波变换测试
python main.py preprocessing --input "E:\code\spectronon\20251226\data\class.csv" --method wave --spectral-start-index 1 --output-dir E:\code\spectronon\20251226\output
```
### 11. 形状特征 (shape-features)
```bash
# 形状特征提取测试
python main.py shape-features --input "E:\code\spectronon\20251226\output\result.dat" --hdr-file "E:\code\spectronon\20251226\output\result.hdr" --input-type dat --shape-band-index 0 --min-area 50 --output-dir E:\code\spectronon\20251226\output --save-labeled-image
# 形状特征提取(分水岭分割)测试
python main.py shape-features --input "E:\code\spectronon\20251226\output\result.dat" --hdr-file "E:\code\spectronon\20251226\output\result.hdr" --input-type dat --shape-band-index 0 --use-watershed --watershed-min-distance 15 --output-dir E:\code\spectronon\20251226\output
```
### 12. GLCM纹理特征 (glcm)
```bash
# GLCM纹理特征提取测试
python main.py glcm --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --band-index 25 --output-dir E:\code\spectronon\20251226\output
# GLCM多角度纹理特征测试
python main.py glcm --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --band-index 25 --step 1 2 4 --angle 0 45 90 135 --output-dir E:\code\spectronon\20251226\output
```
### 13. 颜色分析 (color-analysis)
```bash
# CIEDE2000色差分析测试
python main.py color-analysis --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method CIEDE2000 --standards-file "E:\code\spectronon\20251226\data\clolor.csv" --output-dir E:\code\spectronon\20251226\output
# CIE94色差分析测试
python main.py color-analysis --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method CIE94 --standards-file "E:\code\spectronon\20251226\data\clolor.csv" --output-dir E:\code\spectronon\20251226\output
```
### 14. 图像滤波 (filtering)
```bash
# 均值滤波测试
python main.py filtering --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --filter-type mean --filter-band-index 25 --kernel-size 3 --output-dir E:\code\spectronon\20251226\output
# 中值滤波测试
python main.py filtering --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --filter-type median --filter-band-index 25 --kernel-size 3 --output-dir E:\code\spectronon\20251226\output
# 高斯滤波测试
python main.py filtering --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --filter-type gaussian --filter-band-index 25 --kernel-size 5 --sigma 1.5 --output-dir E:\code\spectronon\20251226\output
# 双边滤波测试
python main.py filtering --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --filter-type bilateral --filter-band-index 25 --kernel-size 5 --sigma-color 50 --sigma-space 50 --output-dir E:\code\spectronon\20251226\output
# 形态学开运算测试
python main.py filtering --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --filter-type opening --filter-band-index 25 --kernel-size 3 --se-shape disk --output-dir E:\code\spectronon\20251226\output
# 形态学闭运算测试
python main.py filtering --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --filter-type closing --filter-band-index 25 --kernel-size 3 --se-shape disk --output-dir E:\code\spectronon\20251226\output
# 形态学腐蚀测试
python main.py filtering --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --filter-type erosion --filter-band-index 25 --kernel-size 3 --se-shape square --output-dir E:\code\spectronon\20251226\output
# 形态学膨胀测试
python main.py filtering --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --filter-type dilation --filter-band-index 25 --kernel-size 3 --se-shape square --output-dir E:\code\spectronon\20251226\output
# 形态学梯度测试
python main.py filtering --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --filter-type gradient --filter-band-index 25 --kernel-size 3 --se-shape disk --output-dir E:\code\spectronon\20251226\output
# 顶帽变换测试
python main.py filtering --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --filter-type tophat --filter-band-index 25 --kernel-size 5 --se-shape disk --output-dir E:\code\spectronon\20251226\output
# 黑帽变换测试
python main.py filtering --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --filter-type blackhat --filter-band-index 25 --kernel-size 5 --se-shape disk --output-dir E:\code\spectronon\20251226\output
```
### 15. 回归分析 (regression)
```bash
# 线性回归测试
python main.py regression --input "E:\code\spectronon\20251226\data\data.csv" --label-column Label --models linear --output-dir E:\code\spectronon\20251226\output
# Ridge回归测试
python main.py regression --input "E:\code\spectronon\20251226\data\data.csv" --label-column Label --models ridge --output-dir E:\code\spectronon\20251226\output
# Lasso回归测试
python main.py regression --input "E:\code\spectronon\20251226\data\data.csv" --label-column Label --models lasso --output-dir E:\code\spectronon\20251226\output
# Elastic Net回归测试
python main.py regression --input "E:\code\spectronon\20251226\data\data.csv" --label-column Label --models elastic_net --output-dir E:\code\spectronon\20251226\output
# SVR回归测试
python main.py regression --input "E:\code\spectronon\20251226\data\data.csv" --label-column Label --models svr --output-dir E:\code\spectronon\20251226\output
# 随机森林回归测试
python main.py regression --input "E:\code\spectronon\20251226\data\data.csv" --label-column Label --models random_forest --output-dir E:\code\spectronon\20251226\output
# XGBoost回归测试
python main.py regression --input "E:\code\spectronon\20251226\data\data.csv" --label-column Label --models xgboost --output-dir E:\code\spectronon\20251226\output
# LightGBM回归测试
python main.py regression --input "E:\code\spectronon\20251226\data\data.csv" --label-column Label --models lightgbm --output-dir E:\code\spectronon\20251226\output
# CatBoost回归测试
python main.py regression --input "E:\code\spectronon\20251226\data\data.csv" --label-column Label --models catboost --output-dir E:\code\spectronon\20251226\output
# 多模型对比测试(带超参数调优)
python main.py regression --input "E:\code\spectronon\20251226\data\data.csv" --label-column Label --models ridge lasso xgboost lightgbm --tune-params --output-dir E:\code\spectronon\20251226\output
# 多模型对比测试(默认参数)
python main.py regression --input "E:\code\spectronon\20251226\data\data.csv" --label-column Label --models ridge lasso svr random_forest --output-dir E:\code\spectronon\20251226\output
```
### 16. 回归预测 (regression-prediction)
```bash
# 回归预测测试
python main.py regression-prediction --input "E:\code\spectronon\20251226\data\GreenPaintChipsSmall.bip.hdr" --model-path "E:\code\spectronon\20251226\models\ridge_20260106_104115.pkl" --mask-path "E:\code\spectronon\20251226\data\roi.shp" --output-dir E:\code\spectronon\20251226\output
# 回归预测测试(批量模型)
python main.py regression-prediction --input "E:\code\spectronon\20251226\data\GreenPaintChipsSmall.bip.hdr" --model-path "E:\code\spectronon\20251226\models" --batch-mode --output-dir E:\code\spectronon\20251226\output
```
### 17. 色差计算 (delta-e)
```bash
# 图像模式色差计算测试
python main.py delta-e --mode image --input "E:\code\spectronon\20251226\data\LAB.hdr" --method CIE76 --create-histogram --standards "E:\code\spectronon\20251226\data\clolor.csv" --output-file E:\code\spectronon\20251226\output\delate.bil --create-heatmap
# 图像模式色差计算(带热图)测试
python main.py delta-e --mode image --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method CIE76 --create-histogram --standards "E:\code\spectronon\20251226\data\clolor.csv" --output-file E:\code\spectronon\20251226\output\delate.bil --create-heatmap
# 两两比较模式色差计算测试
python main.py delta-e --mode pairwise --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method CIEDE2000 --reference-range 0,1 --target-range 2,3 --output-file E:\code\spectronon\20251226\output\pairwise_deltae.bil
```
### 18. 光谱到颜色转换 (spectral-to-color)
```bash
# Lab颜色空间转换测试
python main.py spectral-to-color --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --color_space Lab --illuminant D50 --observer 2° --output E:\code\spectronon\20251226\output\LAB.dat
# XYZ颜色空间转换测试
python main.py spectral-to-color --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --color_space XYZ --illuminant D65 --observer 10° --output E:\code\spectronon\20251226\output\XYZ.dat
# LCH颜色空间转换测试
python main.py spectral-to-color --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --color_space LCH --illuminant A --observer 2° --output E:\code\spectronon\20251226\output\LCH.dat
```
### 19. XYZ到RGB转换 (xyz-to-rgb)
```bash
# XYZ到RGB转换测试
python main.py xyz-to-rgb --input "E:\code\spectronon\20251226\output\XYZ.hdr" --output "E:\code\spectronon\20251226\output\RGB_sRGB.tif" --rgb-space "sRGB" --gamma "sRGB"
# Adobe RGB颜色空间转换测试
python main.py xyz-to-rgb --input "E:\code\spectronon\20251226\output\XYZ.hdr" --output "E:\code\spectronon\20251226\output\RGB_Adobe.tif" --rgb-space "Adobe RGB (1998)" --gamma "sRGB"
# 高精度输出测试
python main.py xyz-to-rgb --input "E:\code\spectronon\20251226\output\XYZ.hdr" --output "E:\code\spectronon\20251226\output\RGB_16bit.tif" --rgb-space "sRGB" --gamma "sRGB" --output-dtype "uint16"
```
### 20. PROSAIL模拟器GUI (prosail-gui)
```bash
# PROSAIL GUI启动测试
python main.py prosail-gui
# PROSAIL命令行模式测试
python main.py prosail-gui --no-gui --save-default
```
## 批量测试脚本
创建 `run_all_tests.bat` 文件来批量运行所有测试:
```batch
@echo off
echo 开始运行高光谱分析工具包自动化测试...
echo.
echo 1. 降维分析测试
python main.py dim-reduction --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method pca --n-components 3 --output-file E:\code\spectronon\20251226\output\pca.dat
echo.
echo 2. 图像分割测试
python main.py segmentation --input "E:\code\spectronon\20251226\data\GreenPaintChipsSmall.bip.hdr" --method otsu --band-index 50 --output-dir E:\code\spectronon\20251226\output
echo.
echo 3. 异常检测测试
python main.py anomaly-detection --input "E:\code\spectronon\20251226\data\leaf_small.bip.hdr" --method rx --contamination 0.1 --output-file "E:\code\spectronon\20251226\output\RX.dat"
echo.
echo 4. 分类分析测试
python main.py classification --input "E:\code\spectronon\20251226\data\GreenPaintChipsSmall.bip" --roi-file "E:\code\spectronon\20251226\data\roi.xml" --method svm --output-file E:\code\spectronon\20251226\output\svm.dat
echo.
echo 5. 监督分类测试
python main.py supervised-classification --input "E:\code\spectronon\20251226\data\GreenPaintChipsSmall.bip.hdr" --method all --xml_file "E:\code\spectronon\20251226\data\roi.xml" --visualize --output-dir E:\code\spectronon\20251226\output
echo.
echo 所有测试完成!
pause
```
## 注意事项
1. **路径修改**:根据你的实际环境修改输入文件路径和输出目录路径
2. **依赖数据**:确保所有引用的数据文件(如 `.hdr``.xml``.csv` 等)存在
3. **输出目录**:确保输出目录存在且有写权限
4. **内存使用**:某些大型图像处理可能需要较多内存
5. **执行时间**:一些复杂的算法(如 t-SNE、遗传算法等可能需要较长时间
## 预期输出
每个测试命令都会在指定的输出目录生成相应的结果文件,包括:
- 数据文件(`.dat``.hdr``.csv` 等)
- 可视化图表(`.png``.jpg` 等)
- 统计报告和日志文件
成功执行的标志是命令返回代码为 0且在输出目录中生成了预期的文件。