一套相位偏折术(PMD)成像系统,用于从8张相位偏移图像(分为X和Y方向各4张)中计算包裹相位、解包裹相位、表面梯度(形状)、镜面反射分量(SRC)和漫反射分量(平均图像)。通过双方向处理与结果融合,最终生成平滑的相位图、形状图和反射分量图,适用于镜面或半镜面物体的三维形貌与反射特性测量。
相位偏折算法2.5d成像系统
相位偏折的算法实现代码,基于8张原图或者4张,计算出形状图,镜面反射分量,漫反射分量等
py代码和cpp代码都实现了,联系请备注需要哪一种,默认发cpp的
一个基于 OpenCV 实现的 相位偏折术(Phase Measuring Deflectometry,PMD) 处理程序,用于从多张图像中计算相位、解包裹相位、梯度(形状)信息、镜面反射分量(SRC)和平均图像等
🧠 程序功能概述
1. 核心目标
实现 相位偏折术(PMD) 中的相位计算与解包裹,用于恢复物体表面的法线或形状信息,适用于镜面或半镜面表面的光学测量。
2. 处理流程
程序分为两个方向的处理:X方向 和 Y方向,分别使用不同的图像序列(各4张),最终合并得到完整的相位、梯度和反射分量图。
📁 代码结构说明
1. DealX() 函数
-
输入图像:
5.jpg,6.jpg,7.jpg,8.jpg -
处理步骤:
-
读取4张相位偏移图像(X方向)
-
计算正弦和余弦分量(4步相移法)
-
计算包裹相位(
atan2(cos, sin)) -
解包裹相位(沿X方向逐行进行)
-
计算X方向的梯度(Sobel算子)
-
计算镜面反射分量(SRC):
SRC=(I3−I1)2+(I4−I2)22
-
计算4张图像的平均图像(漫反射分量)
-
保存中间结果(如相位图、解包裹图、梯度图等)
-
2. DealY() 函数
-
输入图像:
1.jpg,2.jpg,3.jpg,4.jpg -
处理步骤:
-
与DealX()类似,但解包裹方向为Y方向(沿列进行)
-
同样计算梯度、SRC、平均图像等
-
3. main() 函数
-
调用
DealX()和DealY() -
检查两个方向的解包裹相位图尺寸和类型是否一致
-
合并X和Y方向的结果:
-
full_Dpha = (D_pha + D_pha_Y) * 0.5 -
full_Shape = (Shap + Shap_Y) * 0.5 -
full_SRC = (SRC + SRC_Y) * 0.5
-
-
对合并后的相位和梯度图进行9×9均值滤波
-
保存最终结果:
-
full_Dpha.tiff:完整解包裹相位 -
full_Shape.tiff:完整梯度(形状)图 -
full_SRC.tiff:完整镜面反射分量图
-
🔧 关键技术点
| 步骤 | 方法 | 说明 |
|---|---|---|
| 相位计算 | 4步相移法 | 使用4张图像计算包裹相位 |
| 解包裹 | 一维路径积分 | X方向沿行,Y方向沿列 |
| 梯度计算 | Sobel算子 | 用于估计表面法线方向 |
| SRC计算 | 差分平方和开方 | 反映镜面反射强度 |
| 图像平均 | 四图平均 | 近似漫反射分量 |
| 后处理 | 均值滤波(9×9) | 平滑噪声,提升信噪比 |
🧩 输出结果文件
中间文件(X方向):
-
pha.tiff:包裹相位 -
D_pha.tiff:解包裹相位 -
Shap.tiff:X方向梯度 -
SRC.tiff:X方向镜面反射分量 -
AverageImage.tiff:平均图像(漫反射)
中间文件(Y方向):
-
同上,后缀为
_Y.tiff
最终合并文件:
-
full_Dpha.tiff:完整解包裹相位 -
full_Shape.tiff:完整梯度(形状)图 -
full_SRC.tiff:完整镜面反射分量图
YID:9440878086381035
瘦瘦的秋葵









