ZEM 自动对焦测试 (zem-auto-focus-test)
功能说明
对一组不同物镜值(或文件名含 _ 序列,如 IMG_100_...)的灰度图像,计算多种清晰度/焦距评价算子,并以对数坐标曲线展示各算子随物镜值的变化,用于评估自动对焦效果。
复刻自 WPF 模块 UtilityTools.Modules.AutoFocusTest。
实现的算子(真实移植,无硬件依赖)
以下算子均从 UtilityTools.Core/Helper/AutoFocusMethod.cs 逐行移植为纯 TypeScript/JavaScript,运行于前端 Webview(canvas 解码图像为灰度像素后计算):
| 算子 |
说明 |
| Tenengrad |
Sobel 梯度幅值平方和均值 |
| Laplacian |
Laplacian 算子结果方差 |
| Brenner |
间隔 2 像素差平方和均值 |
| MultiScale |
多级下采样 Tenengrad 加权和 |
| Noise |
残差标准差×0.7 + 残差熵×0.3 |
| MinMaxDiff |
最大最小像素差 |
| HighFreqRatio |
2D DFT 高频能量占比近似 |
与原模块对应
AutoFocusTestViewModel → media/main.js 的主流程(选择文件夹、解析物镜值、逐图计算、绘制曲线)。
AutoFocusMethod 全部方法 → src/focusMetrics.ts(扩展侧 TS 模块,供参考/复用)以及 media/main.js(Webview 内实际执行)。
OxyPlot 对数坐标曲线 → 原生 Canvas 折线图(对数 Y 轴)。
Mock / 桩说明
- 无 Mock:所有图像处理与清晰度计算均为真实移植,不依赖任何硬件或外部服务。
- 硬件交互:原模块本身不涉及电机/相机硬件 I/O,仅本地读取图像文件,因此无需调用组 H 通信插件。
使用
命令面板执行 ZEM Auto Focus Test: 打开自动对焦测试,选择含多张图的文件夹即可。
| |