A lightweight desktop demo for Fizeau interferogram phase extraction, phase unwrapping, Zernike fitting, and full-aperture wavefront analysis.
面向实验室算法验证与数据分析的菲索干涉图处理软件。使用 Python、PySide6 和 Matplotlib 实现单帧载波相位提取、相位展开、Zernike 拟合与完整口径 波前分析。
如果这个项目对你有帮助,欢迎点一个 ⭐ Star!
下载 Windows 版 · 使用说明 · 算法文档
- 载入参考元件与待测元件干涉图,自动检测并交互调整圆形有效孔径;
- “准备 → 处理 → 结果”三段式工作流程;
- 四种单帧载波相位提取方法:
- 傅里叶变换FT:手动观察二维频谱、点击一级谱峰并设置 Gaussian 边带窗;
-
空间载波相移SCPS:线性
$N$ 点空间载波解调,包含圆形孔径边界约束; - 最小二乘空间载波相移LS-SCPS:估计局部相位增量并进行最小二乘解调;
- 加窗傅里叶变换WFT:在局部时频域恢复复场和截断相位;
- PDV 质量图引导相位展开;
- Zernike 拟合、逐项去除、RMS/PV 与完整有效口径统计;
- FT 频谱与滤波结果、相位置信度、交互式 3D 波面与两点剖面;
- 可复现的仿真数据和一键结果导出。
下列界面由仓库内置的确定性仿真干涉图生成,依次展示截断相位、去前 4 项后的面形分析、交互式 3D 波面和两点剖面。
| 截断相位 | 面形分析 |
|---|---|
![]() |
![]() |
| 3D 波面 | 剖面线 |
![]() |
![]() |
需要 Python 3.10–3.12:
git clone https://github.com/MarvelousZK/FizeauGUI.git
cd FizeauGUI
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -e .
python -m fizeau_gui安装后也可以使用命令:
fizeau-gui仓库已经包含一组确定性参考图和待测图,位于
examples/simulated_data/。重新生成:
python examples/generate_simulation.pyFizeauGUI/
├─ src/fizeau_gui/ Python 应用包、算法核心、主题和图标资源
├─ docs/ 使用说明、算法原理和原理配图
├─ examples/ 仿真生成器与可复现示例数据
├─ tests/ 算法回归与 GUI 冒烟测试
├─ pyproject.toml Python 包和命令行入口配置
├─ requirements.txt 开发依赖
├─ README.md
└─ LICENSE
本实验的数据处理流程主要由单帧相位提取、相位展开和 Zernike 分解三个计算模块组成。软件的具体操作步骤、参数设置及结果说明参见使用说明。
第一部分为单帧相位提取。傅里叶变换FT以傅里叶变换条纹分析方法为理论基础 [1],相关频谱选峰、边带滤波及相位恢复过程可结合傅里叶变换FT原理配图阅读。空间载波相移SCPS参考相移干涉和线性空间载波解调的前期研究 [2–4],通过参考波前与被测波前之间的相对倾斜引入近似线性载波,并把一个条纹周期内的相邻像素作为等效相移状态;本软件另外加入圆形有效孔径的窗口约束和短弦边界处理,具体原理参见空间载波相移SCPS。最小二乘空间载波相移LS-SCPS来源于四川大学李大海教授团队此前的研究工作 [5]。加窗傅里叶变换WFT参考南洋理工大学钱克矛教授的论文及其开源程序 [6]。
第二部分为相位展开。软件采用 Herráez 教授提出的质量引导相位展开思想 [7],使相位能够按照可靠性由高到低的顺序进行展开,从而减小低质量区域对整体结果的影响。
第三部分为 Zernike 分解。Zernike 圆多项式最早由 Zernike 提出 [8],本实验采用 Noll 编号及归一化方式 [9],在圆形有效孔径内对波前进行最小二乘拟合。相关公式在原 MATLAB 程序中标注为《光学车间检测》第 383 页式(13.47);可核验的英文第三版内容位于第 13 章、第 498–546 页 [10]。编号规则、归一化方式以及本项目的具体实现参见Zernike 拟合、Noll 编号与本项目实现。
- M. Takeda, H. Ina, and S. Kobayashi, “Fourier-transform method of fringe-pattern analysis for computer-based topography and interferometry,” Journal of the Optical Society of America 72(1), 156–160 (1982). DOI: 10.1364/JOSA.72.000156
- J. H. Bruning, D. R. Herriott, J. E. Gallagher, D. P. Rosenfeld, A. D. White, and D. J. Brangaccio, “Digital wavefront measuring interferometer for testing optical surfaces and lenses,” Applied Optics 13(11), 2693–2703 (1974). DOI: 10.1364/AO.13.002693
- B. T. Kimbrough, “Pixelated mask spatial carrier phase shifting interferometry algorithms and associated errors,” Applied Optics 45(19), 4554–4562 (2006). DOI: 10.1364/AO.45.004554
- J. Xu, Q. Xu, and H. Peng, “Spatial carrier phase-shifting algorithm based on least-squares iteration,” Applied Optics 47(29), 5446–5453 (2008). DOI: 10.1364/AO.47.005446
- 罗鹏、李大海等,“Phase-extraction algorithm for a single-shot spatial-carrier orthogonal fringe pattern with least squares method,” Optical Engineering 59(2), 024103 (2020). DOI: 10.1117/1.OE.59.2.024103
- 钱克矛,“Windowed Fourier transform for fringe pattern analysis,” Applied Optics 43(13), 2695–2702 (2004). DOI: 10.1364/AO.43.002695
- M. A. Herráez, D. R. Burton, M. J. Lalor, and M. A. Gdeisat, “Fast two-dimensional phase-unwrapping algorithm based on sorting by reliability following a noncontinuous path,” Applied Optics 41(35), 7437–7444 (2002). DOI: 10.1364/AO.41.007437
- F. Zernike, “Beugungstheorie des Schneidenverfahrens und seiner verbesserten Form, der Phasenkontrastmethode,” Physica 1, 689–704 (1934). DOI: 10.1016/S0031-8914(34)80259-5
- R. J. Noll, “Zernike polynomials and atmospheric turbulence,” Journal of the Optical Society of America 66(3), 207–211 (1976). DOI: 10.1364/JOSA.66.000207
- V. N. Mahajan, “Zernike Polynomial and Wavefront Fitting,” in D. Malacara (ed.), Optical Shop Testing, 3rd ed., pp. 498–546, Wiley (2007). DOI: 10.1002/9780470135976.ch13
- H. Schreiber and J. H. Bruning, “Phase Shifting Interferometry,” in D. Malacara (ed.), Optical Shop Testing, 3rd ed., pp. 547–666, Wiley (2007). DOI: 10.1002/9780470135976.ch14
- RMS/PV 始终基于完整有效口径计算,不通过缩小统计区域降低指标;
- mask 外区域不参与展开、拟合与统计,并以透明区域显示;
- 3D 预览使用轻量网格,不会改变完整分辨率数据;
- 实际计量精度取决于采集系统标定、参考面、环境稳定性与条纹质量。
本项目主要用于算法验证和实验室数据分析;在未经标定与不确定度评估 时,不应直接作为商业计量结论。
MIT © 2026 Zekun Zhang



