refactor: 渐进式模块化重构 — 剥离可视化层、工具层、算法层到独立模块
This commit is contained in:
59
src/core/visualization/preview.py
Normal file
59
src/core/visualization/preview.py
Normal file
@ -0,0 +1,59 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
可视化模块 - 耀斑影像预览图生成
|
||||
"""
|
||||
from pathlib import Path
|
||||
from typing import Optional, Dict
|
||||
|
||||
from src.postprocessing.visualization_reports import WaterQualityVisualization
|
||||
|
||||
|
||||
def generate_glint_deglint_previews(
|
||||
work_dir: str,
|
||||
output_subdir: str = "glint_deglint_previews",
|
||||
generate_glint: bool = True,
|
||||
generate_deglint: bool = True,
|
||||
output_dir: Optional[str] = None
|
||||
) -> Dict[str, str]:
|
||||
"""
|
||||
生成2_glint和3_deglint文件夹中影像文件的PNG预览图
|
||||
|
||||
Args:
|
||||
work_dir: 工作目录
|
||||
output_subdir: 输出子目录名称
|
||||
generate_glint: 是否处理2_glint文件夹
|
||||
generate_deglint: 是否处理3_deglint文件夹
|
||||
output_dir: 输出目录(None则使用默认)
|
||||
|
||||
Returns:
|
||||
生成的预览图路径字典
|
||||
"""
|
||||
print(f"\n{'='*70}")
|
||||
print("步骤: 生成耀斑分析影像预览图")
|
||||
print(f"{'='*70}")
|
||||
|
||||
if work_dir is None:
|
||||
raise ValueError("请提供 work_dir")
|
||||
|
||||
# 确定输出目录
|
||||
if output_dir is None:
|
||||
output_dir = str(Path(work_dir) / "visualization" / output_subdir)
|
||||
Path(output_dir).mkdir(parents=True, exist_ok=True)
|
||||
|
||||
# 实例化可视化器
|
||||
visualizer = WaterQualityVisualization(output_dir)
|
||||
|
||||
try:
|
||||
preview_paths = visualizer.generate_glint_deglint_previews(
|
||||
work_dir=work_dir,
|
||||
output_subdir=output_subdir,
|
||||
generate_glint=generate_glint,
|
||||
generate_deglint=generate_deglint
|
||||
)
|
||||
|
||||
print(f"耀斑分析影像预览图生成完成,共生成 {len(preview_paths)} 个预览图")
|
||||
return preview_paths
|
||||
|
||||
except Exception as e:
|
||||
print(f"生成耀斑分析影像预览图时出错: {e}")
|
||||
return {}
|
||||
Reference in New Issue
Block a user