基于 OpenCV 的客观图像质量评估程序,支持多种画质指标分析和对比。
- 多维度画质评估:清晰度、噪点、对比度、动态范围、色彩、曝光
- 噪点感知清晰度:改进算法避免将噪点误判为细节
- 多格式支持:JPG、PNG、HEIF/HIF等
- 批量分析:自动分析目录下所有图像并排序
- 详细对比:输出画质差异分析和排名
uv venv
source .venv/bin/activate # Linux/Mac
# 或 .venv\Scripts\activate # Windows
uv pip install -e .pip install -e .# 分析当前目录下的所有图片
python analyze_quality.py
# 分析指定目录
python analyze_quality.py /path/to/images╔══════════════════════════════════════════════════════════════════════╗
║ 图片: DSC_4387.JPG ║
╠══════════════════════════════════════════════════════════════════════╣
║ 【清晰度指标】 ║
║ • 拉普拉斯清晰度: 343.81 ║
║ • 清晰度: 163.91 ║
║ 【细节与噪点】 ║
║ • 噪点水平: 8.895478 ║
║ • 估计信噪比: 17.50 dB ║
╠══════════════════════════════════════════════════════════════════════╣
║ ★ 综合评分: 61.07/100 ║
╚══════════════════════════════════════════════════════════════════════╝
| 指标 | 说明 | 理想值 |
|---|---|---|
| 拉普拉斯清晰度 | 边缘锐度检测 | 越高越好 |
| 清晰度 | 噪点感知的真实清晰度 | 越高越好 |
| 噪点水平 | 估计噪声标准差 | 越低越好 |
| 信噪比(SNR) | 信号与噪声比值 | >20dB优秀 |
| 动态范围 | 亮度层次丰富度 | 接近255 |
- 拉普拉斯方差:检测二阶边缘变化
- Sobel梯度:计算一阶梯度强度
- 清晰度计算:使用噪点感知算法,自动校正噪点干扰
使用拉普拉斯响应的中值绝对偏差(MAD)估计噪声水平:
noise_σ = MAD / 0.6745.
├── analyze_quality.py # 主程序
├── pyproject.toml # 项目配置
├── README.md # 本文件
└── .gitignore
- Python >= 3.10
- OpenCV >= 4.8.0
- Pillow >= 10.0.0
- pillow-heif >= 1.3.0
- NumPy >= 1.24.0
- rawpy >= 0.18.0
MIT License