基于多频外差与四步相移的光栅投影三维重建系统
项目介绍
本项目设计并实现了一个基于结构光投影原理的三维测量算法系统。系统利用MATLAB环境开发,集成了图像预处理、相位提取、相位解包裹以及三维坐标映射等核心环节。通过模拟复杂物体表面(如半球体与阶梯起伏)的条纹投影过程,系统能够从带有噪声的干涉条纹图中通过数学算法恢复出高精度的三维点云数据,展示了光栅投影技术在工业视觉测量中的完整技术链路。
功能特性
- 多频 heterodyne 机制:采用双频率(f1=20, f2=19)外差技术,通过产生大周期的等效相位解决包裹相位的周期歧义,实现全量程的绝对相位展开。
- 高精度相位提取:内置标准四步相移算法,通过四帧具有90度相位差的条纹图像,有效抵消光耦设备的线性误差,提取高信噪比的包裹相位。
- 方向自适应滤波:针对光学条纹图的局部梯度方向进行特征估计,通过各向异性扩散与高斯滤波相结合,在抑制噪声的同时强化条纹边缘,避免细节丢失。
- 实时点云生成:支持从绝对相位映射到深度空间的快速转换,提供直观的三维曲面渲染及点云矩阵输出功能。
系统要求
- 软件环境:MATLAB R2018b 或更高版本。
- 所需工具箱:Image Processing Toolbox(图像处理工具箱)。
- 硬件建议:建议显存或内存不低于8GB,以处理高分辨率的计算矩阵。
实现逻辑与算法细节
#### 1. 模拟环境与条纹生成
系统首先在512x512的像素矩阵中构建一个几何模型,该模型由半球体零件和正弦起伏的基础底面组成。接着,根据设定的频率参数(f1=20, f2=19)生成两组、每组四张的四步相移条纹图。每张图均注入了0.05量级的随机噪声,用于模拟真实工业相机的感光噪声。
#### 2. 方向自适应旋转滤波处理
在相位计算前,通过一个自定义的自适应滤波器对原始条纹进行净化。该算法首先利用梯度算子计算图像的局部切线方向,随后利用各向异性扩散滤波(Anisotropic Diffusion Filtering)模拟旋转滤波器的特性。这种处理方式能够沿着条纹的延伸方向进行平滑,有效清除垂直于条纹方向的随机干涉噪声。
#### 3. 四步相移相位提取
核心程序根据四步相移的标准算式:
Wrapped_Phase = atan2(I4 - I2, I1 - I3)
对滤波后的两组频率图像分别进行计算。此时生成的包裹相位被约束在 (-pi, pi] 之间,在图像上表现为锯齿状的周期性条纹。
#### 4. 多频外差相位解包裹
系统通过两阶段逻辑恢复绝对相位:
- 外差合成:将高频(f1)相位与次高频(f2)相位求差,得到一个等效波长等于整个视场长度的长波相位(phi_12)。
- 相位补偿:利用 phi_12 作为归一化参考,根据 f1/(f1-f2) 的频率比例系数,计算出包裹相位在每一个点上的周期级数 k,从而消除 2pi 跳变,获得线性的绝对相位。
#### 5. 三维重构与深度映射
解包裹后的绝对相位包含了物体的形貌信息。系统通过减去预先设定的参考平面(即无物体的基准光栅相位)来获取相位畸变量。最后,通过预设的比例系数 K_depth,将该相位差线性转换为物理深度 Z 坐标。
#### 6. 可视化输出
程序通过多子图窗口展示处理全过程,包括:
- 原始相移条纹图。
- 滤波优化后的条纹对比。
- 包裹相位的锯齿图。
- 外差合成得到的宽幅等效相位。
- 最终生成的全量程绝对相位。
- 采用 Phong 照明模型渲染的三维点云表面。
使用方法
- 将 main.m 文件保存在 MATLAB 工作路径下。
- 确保已安装图像处理相关的工具箱。
- 直接在命令行窗口输入 main 并运行。
- 运行结束后,系统将弹出可视化窗口模型,并在命令行输出重构完成的点云矩阵规模。