相位解包裹(一)一维相位解包裹

答辩结束了,可以接着更新啦~~~

 

前几篇文章已经写过FTP和PMP两种相位提取的方式,相位提取这一步基本都是固定的了,只要利用正弦条纹结构光做三维测量,这一步不管怎么玩,都基本不脱离FTP或者PMP,当然目前PMP的使用频率更高。

但是,提取相位后的下一步,应该是结构光三维重建非常重要的一步,在我看来,说是最重要的也不为过,就是相位解包裹。

首先我们先讨论什么是相位解包裹。

 

相位解包裹

相位提取不管用FTP还是PMP,最终都是要用反正切来求相位的,那这就意味着,求出来的相位值都是分布在[-pi,pi]或者实

[0,2pi]这一个区间里。需要注意的是这里所说的反正切是四象限反正切。

因此,提取出来的相位是被截断的,被称为包裹相位或者截断相位(wrapped phase),如下图蓝色虚线。需要将它恢复成连续的状态,如下图红色实线,恢复出来的相位称为连续相位或者绝对相位(absolute phase),这一个过程就被称为相位解包裹(phase unwrapping),也有翻译称为相位展开的。

相位解包裹(一)一维相位解包裹_第1张图片

 

 

一维相位解包裹

明白了相位解包裹是什么,就可以开始讨论如何去解包裹相位了,这里从最简单的一维相位解包裹开始讨论。

早在1982年Itoh对一维相位解包裹问题进行了总结,如下图的具体步骤。要注意的是,步骤2里的指截断运算,反正切就是一种截断运算。不过这一步里,为了好理解和方便转成代码,我认为更合适的是MOD 2pi运算。

相位解包裹(一)一维相位解包裹_第2张图片

根据上述的步骤,一维相位解包裹可以总结为 :连续相位可以通过累加截断相位的差值的截断而求得,也就是表示为下面的式子(符号表示稍有点不一样,不同时间做的总结,我也懒得重新改了,理不直气也壮.jpg)

式中,\Phi \left( m \right)为第m点的连续相位, \Phi \left( 0 \right)为初始化的起始相位点,\Phi \left( n \right) 为第n点的连续相位。\vartriangle \left\{ \right\}为求差运算符,定义为

\vartriangle \left\{ \Phi \left( n \right) \right\}=\Phi \left( n+1 \right)-\Phi \left( n \right)

 

 

代码逻辑

把上面一维相位解包裹的理论步骤转为代码的话,逻辑上可以更简单一点,可以用下面两种方式。

第一种方式,遍历全部相位值,比较前后两个位置的相位值,求后一点与前一个点的相位差,如果相位差大于pi,则后一个点的相位减2pi;如果相位差小于-pi,则后一个点的相位加2pi;如果相位差大于-pi小于pi,则继续比较下一位置的相位。

第二种方式:第n点的截断相位与第n-1点的连续相位之间的关系可用下式表示:

这个过程就像下面这幅图,向截断的相位加k个2pi把它抬起来到正确的位置

相位解包裹(一)一维相位解包裹_第3张图片

 

总的来说,一维相位解包裹的理论是比较简单好理解的,但为什么到了二维之后会出现那么多问题呢,这就留到后续的文章再继续讨论了。

 

参考文献:

[1] Itoh K. Analysis of the phase unwrapping algorithm[J]. Applied optics, 1982, 21(14): 2470-2470.

[2] Ghiglia D C, Pritt M D. Two-dimensional phase unwrapping: theory, algorithms, and software[M]. New York: Wiley, 1998.

 

声明:本文中的图片、公式等都和作者本人的毕业论文有关,如果抄袭盗用吃亏是你自己哦~实在有需要,这里建议你自己码一下公式,自己做一下相关的图哦亲。作者水平有限,如文中有错,请务必留言指正。如有学习交流需要,也可通过邮箱[email protected]联系我,大家一起讨论学习。

你可能感兴趣的:(结构光三维重建,相位解包裹)