Z-stack 多焦面分析工具。当前仓库版本来自 zstack_focus_analyzer_v2_6_fast_projection.zip,主版本为 v2.6 fast projection。
zstack_focus_analyzer.py: Tkinter GUI 主程序。requirements.txt: Python 依赖。
v2.6 重点包括:
- 快速最大亮度投影。
- 快速峰值 Z 高度图。
- 快速峰值 Z + 抛物线插值。
- 保留逐点高斯拟合,用于更精密的正式分析。
- 支持 ROI、mask 排除区、平面拟合、Rx/Ry、PV、RMS、TTV 等分析输出。
python -m pip install -r requirements.txt
python .\zstack_focus_analyzer.pydemo_zstack/ 内含 10 张共聚焦风格的 Z-stack 演示图(黑背景、黑色圆 mark、白色亮边缘),
亮度沿 Z 呈高斯峰(焦面在第 5/6 层),并带有轻微 X 向焦面倾斜,方便快速体验三个页面的功能。
可用 make_demo_zstack.py 重新生成:
python .\make_demo_zstack.py- 修复:快速最大亮度投影 / 快速峰值Z 等“快速投影/亮度”类高度图算法此前误用清晰度高频能量作为 Z 向评分,导致名义“亮度投影”实际跑的是清晰度。现已统一改为使用原始灰度亮度,与“共聚焦亮度峰值” 结果一致(清晰度类算法不受影响)。
- 修复:高度图、逐层漂移的后台线程此前在子线程里读取 Tkinter 变量(Z 起点/步距等),存在崩溃风险。 现改为在主线程先取好 Z 值和图片列表再传入 worker,子线程不再触碰任何 tk 变量。
- 优化:切层显示不再为获取原图尺寸而重复解码整张大图(改用尺寸缓存),并给层选择滑块加了防抖, 拖动大图时明显更顺。显示缓存改为 LRU 淘汰。
- 功能:FOV 高度图网格尺寸放开到
>= 1,填1即逐像素(不做网格平均),可生成逐像素高斯 亮度融合(EDF)图。配合下面的向量化提速,逐像素也只需数秒。 - 清理:
LayerResult用正式字段combined_score取代未使用的score/z_um。 - 大幅提速:高度图逐像素拟合由“逐像素 scipy curve_fit”改为全向量化的 log-抛物线解析拟合 (与原 log-Gaussian 退化算法同源)。grid=1 整幅 512×512 逐像素高斯由约 10 分钟降到约 8 秒 (ROI 更快)。所有快速/逐点模式统一走该向量化路径。
- 高度对全 FOV 拟合(背景也算):用于 Rx/Ry 的高度图对每个网格点都做高斯/亚层拟合,
背景(基底)也参与,从而拟合出基准平面、量出整幅倾角;mark 等特征作为相对基准的偏差正常显示,
不会被当噪声删除。信号门限
TOPO_SIGNAL_REL现仅用于亮度融合(EDF)(背景融合无意义且耗时, 故只融合强信号像素;背景在显示时用最大亮度投影填回)。 - 3D 高度图 + 背景补全 + 稳健滤波:第四张子图由“拟合质量/置信度”改为 FOV 高度 3D 曲面 (左手系 X右/Y里/Z下,Z 轴向下,叠加灰色基准拟合平面,可鼠标拖拽旋转),便于直观判断感兴趣 区域相对基准零平面的倾角。FOV 高度图(2D 与 3D)的背景/被剔除点用最近邻真实高度补全, 不再留白;统计(Rx/Ry、PV/RMS/TTV)仍只用真实测量点。残差 nσ 滤波改用 MAD(中位数绝对偏差) 稳健估计并以中位数为中心设阈值,能更干净地剔除明显离群噪声后再计算 Rx/Ry。
- 高度噪声分层滤波(FOV 页可调,能滤噪又保住 mark 等真实特征):
- 最低 R²:高斯拟合 R² 低于阈值的点视为不可信测量(弱信号/饱和/多峰)剔除,
0关闭; - 孤立尖刺 nσ + 最大尖刺 px:相对局部中值显著偏离、且连通域不超过设定像素数的点判为孤立噪声 剔除——孤立坏点是小连通域会被清除,mark/孔是大连通域会保留(不会再把整圈 mark 当噪声删掉); 被剔点用邻域真实高度补全;
- 平面残差 nσ:用稳健 MAD 迭代拟合基准平面、求 Rx/Ry,特征/异常自动排除出平面拟合(仍保留显示)。
- 最低 R²:高斯拟合 R² 低于阈值的点视为不可信测量(弱信号/饱和/多峰)剔除,
- 显示修复:高度图/融合图各子图改为等比例(
aspect="equal"),mark 圆孔不再被拉伸成椭圆; 高斯融合(EDF)图的背景(未参与融合的像素)用原始最大亮度投影填回,显示/导出 PNG 都是 完整的“黑底+亮环”图,而不是背景空白。新增鼠标滚轮就地缩放(以光标为中心),方便检查细节; 切换图表布局时释放残留的 ROI 框选器,避免拦截缩放/平移。
这是网页版 ChatGPT 生成并打包的多焦面分析工具版本。本次上传将压缩包内容展开到仓库根目录,方便后续直接 clone 和继续开发。