# OptiBench **Repository Path**: try88/opti-bench ## Basic Information - **Project Name**: OptiBench - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-29 - **Last Updated**: 2026-06-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # OptiBench — 开源图像质量测量系统 **ISO 12233:2017 斜边法 | Python 3.10+ | PyQt6** OptiBench 是一个开源、模块化的相机镜头与传感器图像质量测量系统, 实现了 ISO 12233、ISO 14524、ISO 15739、MIL-STD-150A 等标准方法。 --- ## 功能概览 | 模块 | 功能 | |------|------| | **MTF 测量** | ISO 12233:2017 斜边法,Sobel + 亚像素 + TLS,S/T 径向分类 | | **测试卡生成** | 10 种标准测试卡(eSFR、棋盘格、点阵、西门子星、ColorChecker、灰度卡、阶梯卡、USAF 1951、平场、亮斑) | | **预处理** | sRGB 线性化、Bayer RAW 去马赛克、Otsu 自动裁剪、16-bit 支持 | | **质量检查** | PAVA 单调性、CNR 对比度噪声比、Oversampling 检查 | | **报告** | CSV、JSON、PDF、HTML、Markdown | | **GUI** | PyQt6 桌面界面,5 标签页,canvas 缩放+平移 | ## 快速开始 ```bash # 安装依赖 pip install -r requirements.txt # CLI 快速测量 python main-cli.py --quick --blur 1.0 # GUI 桌面界面 python main-gui.py ``` ## 架构 ``` OptiBench/ ├── main-cli.py # CLI 入口 ├── main-gui.py # GUI 入口 ├── app/ │ ├── algorithms/ # 纯算法层 │ │ ├── edge_detection.py # Sobel + 亚像素 + TLS + S/T 分类 │ │ ├── mtf_calculation.py # ESF/LSF/MTF + PAVA + Cubic Spline + LOESS │ │ └── ground_truth.py # Ground Truth 模拟器 │ ├── core/ # 基础设施 │ │ ├── config.py # 全局配置 dataclass │ │ ├── utilities.py # 图像 I/O、单位换算 │ │ ├── preprocessing.py # sRGB 线性化、Bayer、Otsu 裁剪 │ │ └── project.py # .opb 项目文件 │ ├── charts/ # 10 种测试卡生成 │ ├── metrics/ # 测量业务层 │ ├── plots/ # 2D 插值 + 热力图 │ ├── reports/ # CSV/JSON/PDF/HTML/MD 报告 │ ├── plugins/ # 5 个内置测量插件 │ └── gui/ # PyQt6 桌面界面 ├── docs/ # 文档 └── charts/ # 生成的测试卡 ``` ## MTF 测量管线 ``` 预处理(sRGB 线性化) → Sobel 梯度 → Gradient Peak → 二次亚像素 → SVD 整体最小二乘拟合 → ESF 全区域投影(4× oversampling) → PAVA 单调性强制 → ESF 平滑(SG / LOESS) → 数值微分 → LSF + 窗函数 → FFT → MTF 曲线 → ISO 12233 sinc 修正(平滑过渡) → Cubic Spline 插值 MTF50/30/10 → CNR + Oversampling 质量检查 ``` ## GUI 标签页 | 标签页 | 功能 | |--------|------| | **Gen Chart** | 10 种测试卡生成 + Ground Truth 模拟 | | **Setup** | 测量参数配置 + Edge Method/FFT Window 选择 | | **Data** | 结果表格(含 S/T 列 + CNR 状态) | | **Analysis** | 6 个子标签:ROI、MTF50 分布、MTF 曲线、ESF/LSF、插值图、热力图 | | **Batch** | 文件夹批处理 + Blur/Noise/Monte Carlo 扫描 | ## 与 MTF Mapper 对比 | 特性 | MTF Mapper (C++) | OptiBench (Python) | |------|:--:|:--:| | ISO 12233 合规 | ✅ | ✅ | | PAVA 单调性 | ✅ | ✅ | | LOESS 平滑 | ✅ | ✅ | | sRGB 线性化 | ✅ | ✅ | | Bayer RAW | ✅ | ✅ | | Cubic Spline MTF50 | ❌ | ✅ | | GUI 交互 | Qt5 | PyQt6(5 标签页) | | 插件框架 | ❌ | ✅ | | 报告格式 | gnuplot | CSV/JSON/PDF/HTML/MD | | 项目文件 | ❌ | ✅ .opb | ## 精度 | 指标 | 结果 | |------|------| | MTF50 误差(σ=1.5 px) | < 2% | | 噪声鲁棒性 | < 2.5% | | 全项目 diagnostics | 0 errors, 0 warnings | ## 环境依赖 ``` numpy >= 1.24 scipy >= 1.10 opencv-python >= 4.8 matplotlib >= 3.7 PyQt6 >= 6.5 Pillow >= 9.5 reportlab >= 4.0 ``` Python 3.10+ --- *OptiBench — 开源图像质量测量系统。ISO 12233:2017。*