【三维重建】多频外差相位展开(C++实现)

在结构光三维重建中,通过相移法求解出来的相位是包裹相位(在 [-π/2,π/2] 间成周期性 )

【三维重建】多频外差相位展开(C++实现)_第1张图片

我们想要用相位找到相机与投影仪间的对应像素,就需要进行相位展开,确保每一行的相位值是唯一的。

多频外差是相位展开的一种,接下来我们会介绍它的原理,以及代码。

多频外差的原理是将两种不同频率的相位函数叠加得到一个频率更低的相位函数,设\varphi _1(x), \varphi_2(x)对应的周期分别是T1 =80 ,T2 = 60

\varphi_{12}(x) 是\varphi_2(x),\varphi_2(x)合成的相位

T12 = \frac{T1*T2}{T1-T2}=\frac{80*60}{80-60}=240

\varphi_{12}(x)=\left\{\begin{matrix} \varphi_2(x)-\varphi_1(x) \ \ \ \ \ \ \ \ \ \ if\ \varphi_2(x)>\varphi_1(x) \\ \\ 2\pi - (\varphi_1(x)-\varphi_2(x)) \ \ \ if \ \varphi_2(x)<=\varphi_1(x) \end{matrix}\right.

【三维重建】多频外差相位展开(C++实现)_第2张图片

利用\varphi_{12}(x)求解阶次

如果求取\varphi_1(x)的阶次:

order = (\varphi_{12} *\frac{T12}{T1}-\varphi_1) / 2\pi

如何理解这个公式?

【三维重建】多频外差相位展开(C++实现)_第3张图片

\frac{T12}{T1} = \frac{ab'}{ab}=\frac{b'c'}{bd}=\frac{bc}{bd}

\varphi_{12} *\frac{T12}{T1} 之后,\varphi_{12}, \varphi_1会重合

【三维重建】多频外差相位展开(C++实现)_第4张图片

(\varphi_{12} *\frac{T12}{T1} - \varphi_1) / 2\pi 就能得到\varphi_1的阶次

最后就可以求出绝对相位

\phi_1 = \varphi_1+k *2\pi (k是求得的阶次)

你可能感兴趣的:(人工智能)