# Noise_code **Repository Path**: ai-rujing/noise_code ## Basic Information - **Project Name**: Noise_code - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-29 - **Last Updated**: 2025-12-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PC-STNDR: 相干相位时空噪声分解与重建 PC-STNDR是一种创新的图像去噪算法,基于相位相干性分析进行噪声分解和重建。该算法通过分析图像的相位信息来区分结构和噪声,实现高质量的去噪效果。 ## 主要特性 - **相位相干性分析**: 使用多尺度Log-Gabor滤波器组分析图像的相位信息 - **智能噪声分类**: 自动识别和分类不同类型的噪声(热噪声、条纹噪声、脉冲噪声) - **结构保持重建**: 在去除噪声的同时保持图像的重要结构特征 - **自适应参数选择**: 根据图像特征自动优化处理参数 - **多种处理模式**: 支持快速、平衡、高质量三种处理模式 - **GPU加速**: 支持GPU加速处理,提高处理速度 - **批量处理**: 支持批量处理多个图像和视频文件 - **回退策略**: 在资源受限环境中提供简化的处理方案 - **性能分析**: 内置性能分析和瓶颈识别工具 - **质量评估**: 全面的质量评估指标和与传统方法的比较 ## 安装 ### 依赖要求 ```bash pip install numpy scipy opencv-python scikit-image matplotlib pillow hypothesis ``` ### 可选依赖(GPU加速) ```bash pip install cupy-cuda11x # 根据你的CUDA版本选择 ``` ### 可选依赖(GPU监控) ```bash pip install GPUtil ``` ## 快速开始 ### 基本图像去噪 ```python from pc_stndr.core.processor import PCSTNDRProcessor import numpy as np # 创建处理器 processor = PCSTNDRProcessor() # 加载图像(假设已经归一化到[0,1]范围) noisy_image = your_image_loading_function() # 形状: (height, width) 或 (height, width, channels) # 处理图像 denoised_image = processor.process_image(noisy_image) # 保存结果 your_image_saving_function(denoised_image) ``` ### 从文件处理图像 ```python # 直接处理图像文件 output_path = processor.process_image_file( input_path="noisy_image.jpg", output_path="denoised_image.jpg", preserve_metadata=True ) ``` ### 自适应处理(推荐) ```python # 启用自适应参数选择 processor.enable_adaptive_parameters(True) # 自适应处理 denoised_image = processor.process_image_adaptive( noisy_image, target_processing_time=5.0 # 可选:目标处理时间(秒) ) ``` ## 处理模式 PC-STNDR提供三种处理模式: ```python # 快速模式(适合实时处理) fast_processor = PCSTNDRProcessor.create_fast_processor() # 平衡模式(默认,质量和速度平衡) balanced_processor = PCSTNDRProcessor(processing_mode=PCSTNDRProcessor.ProcessingMode.BALANCED) # 高质量模式(最佳质量) quality_processor = PCSTNDRProcessor.create_quality_processor() ``` ## 批量处理 ```python # 批量处理目录中的所有图像 results = processor.batch_process_directory( input_directory="./noisy_images", output_directory="./denoised_images", recursive=True, preserve_metadata=True ) print(f"成功处理: {results['processed_files']}/{results['total_files']} 个文件") ``` ## 视频处理 ```python # 处理视频文件 output_path = processor.process_video_file( input_path="noisy_video.mp4", output_path="denoised_video.mp4" ) ``` ## 质量评估 ```python # 处理图像并评估质量 denoised_image, quality_metrics = processor.process_and_assess_quality( noisy_image, reference=clean_image # 可选:干净的参考图像 ) print(f"PSNR: {quality_metrics.psnr:.2f} dB") print(f"SSIM: {quality_metrics.ssim:.3f}") print(f"整体质量评分: {quality_metrics.get_overall_score():.3f}") ``` ## 与传统方法比较 ```python # 与传统方法比较 comparison = processor.compare_with_traditional_methods( noisy_image, reference=clean_image, traditional_methods=['gaussian', 'bilateral', 'non_local_means'] ) # 查看改进情况 for method, improvement in comparison['improvements'].items(): print(f"相比最佳传统方法,{method}改善: {improvement:+.1f}%") ``` ## 高级功能 ### 自定义配置 ```python from pc_stndr.data_models.config import ProcessingConfig # 创建自定义配置 custom_config = ProcessingConfig( noise_threshold=0.1, coherence_threshold=0.5, enhancement_strength=1.2, diffusion_iterations=5 ) processor = PCSTNDRProcessor.from_config(custom_config) ``` ### 性能分析 ```python # 启用性能分析 processor.enable_performance_profiling(True) # 处理图像并获取性能数据 denoised_image, performance_metrics = processor.process_image_with_profiling(noisy_image) # 分析瓶颈 bottleneck_analysis = processor.analyze_performance_bottlenecks(performance_metrics) # 生成性能报告 report_path = processor.generate_performance_report(performance_metrics, bottleneck_analysis) ``` ### 回退策略 ```python from pc_stndr.core.fallback_strategies import FallbackMode # 启用回退策略 processor.enable_fallback_processing(True, FallbackMode.HYBRID) # 带资源约束的处理 denoised_image = processor.process_image_with_fallback( noisy_image, max_memory_mb=1000, # 最大内存使用1GB max_processing_time=10.0 # 最大处理时间10秒 ) ``` ## 示例脚本 项目包含了详细的示例脚本: - `examples/basic_usage.py` - 基本使用示例 - `examples/batch_processing.py` - 批量处理示例 - `examples/advanced_usage.py` - 高级功能示例 运行示例: ```bash cd examples python basic_usage.py python batch_processing.py python advanced_usage.py ``` ## 算法原理 PC-STNDR算法基于以下核心思想: 1. **相位相干性分析**: 使用多尺度Log-Gabor滤波器组提取图像的相位信息,计算局部相位相干性(LPC) 2. **噪声能量建模**: 基于相位相干性建立噪声能量模型:N(x,s,t) = E(x,s,t) · (1 - LPC(x,s,t)) 3. **时序分析**: 对视频序列进行时序相位演化分析,区分运动和噪声 4. **结构保持重建**: 将噪声能量重新分配到允许的位置,保持高相干性区域的结构 5. **集成增强**: 通过相位重建进行自然的边缘增强和对比度恢复 ## 性能特点 - **高质量**: 在保持结构细节的同时有效去除噪声 - **自适应**: 根据图像特征自动调整参数 - **高效**: 支持GPU加速和多种优化策略 - **鲁棒**: 提供回退策略确保在各种环境下都能工作 - **可扩展**: 支持批量处理和视频处理 ## 技术规格 - **支持的图像格式**: PNG, JPEG, TIFF, BMP, WebP - **支持的视频格式**: MP4, AVI, MOV, MKV, WMV, FLV - **输入图像类型**: 灰度图像和彩色图像 - **数据类型**: 支持8位、16位和32位图像 - **GPU支持**: CUDA加速(可选) - **内存优化**: 支持大图像的分块处理 ## 故障排除 ### 常见问题 1. **内存不足错误** ```python # 启用分块处理 processor = PCSTNDRProcessor(tile_size=256, tile_overlap=32) ``` 2. **处理速度慢** ```python # 使用快速模式 processor.set_processing_mode(PCSTNDRProcessor.ProcessingMode.FAST) # 启用GPU加速 processor.enable_gpu(True) ``` 3. **质量不满意** ```python # 使用高质量模式 processor.set_processing_mode(PCSTNDRProcessor.ProcessingMode.HIGH_QUALITY) # 启用自适应参数 processor.enable_adaptive_parameters(True) ``` ## 测试 运行测试套件: ```bash # 运行所有测试 python -m pytest tests/ # 运行属性测试 python -m pytest tests/property_tests/ # 运行单元测试 python -m pytest tests/unit_tests/ ``` ## 贡献 欢迎贡献代码、报告问题或提出改进建议。 ## 许可证 本项目采用MIT许可证。 ## 引用 如果您在研究中使用了PC-STNDR算法,请引用: ``` PC-STNDR: Phase-Coherent Spatio-Temporal Noise Decomposition & Reconstruction A novel image denoising algorithm based on phase coherence analysis ``` ## 更多信息 - 详细使用指南: [USAGE_GUIDE.md](USAGE_GUIDE.md) - 算法设计文档: [.kiro/specs/phase-coherent-denoiser/design.md](.kiro/specs/phase-coherent-denoiser/design.md) - 需求文档: [.kiro/specs/phase-coherent-denoiser/requirements.md](.kiro/specs/phase-coherent-denoiser/requirements.md)