相位解包裹

相位解包裹基本算法

相位解包裹实际上就是求解出k值的过程。相位解包裹里有一个要求,就是物体的落差不能太大,若太大,就不能真实测量出物体的高度,究竟多大算大?这个与投影的条纹宽度有关。但是这个并不在我们的讨论中,这里忽略落差大造成的影响。

相位解包裹

相位解包裹

相位解包裹

相位解包裹

相位解包裹

相位解包裹

通过这个算法,理论上我们就可以将每个点的实际相位求解出来。实际情况中,像素是二维分布的,那就意味着有不同解包裹的路径。由于每个像素都有着一个确定深度,对应着一个确定的相位值,按理来说解包结果与路径的选取无关。但是由于实验中存在误差,每个像素点的相位值并不准确,这就导致我们以不同路径解包裹时,解出来的结果会存在不一样的地方。为了得到从任意方向解都相同的结果,我们可以直接找出误差的的点或者消除误差。

残差点

我们把由于误差造成相位值错误的点称为残差点。我们举例说明残差点的存在:

相位解包裹

相位解包裹

相位解包裹

很容易发现这两种不同的解包裹方法得到的相位图并不一样,这就是由于残差点的存在造成的。

如何判断残差点?具体判断是通过将相邻四个像素点的差值相加,看其是否为0,为0则不是残差点,为1或-1则是残差点。如下图:

相位解包裹

其中:

相位解包裹

相位解包裹

我们通过相位解包裹的基本算法可以知道,解包裹的过程具有累加性,若解包裹路径上有一个残差点,都会对整个图的相位信息造成影响。所以必须解决这些残差点的影响。

根据对残差点不同的处理方法,可以分出不同的相位解包裹方法。其中主要有两种:一种是基于路径跟踪的相位解包裹方法(先绕过残差点解包裹,然后再将残差点分类处理的一种方法),另一种是最小二乘法的相位解包裹方法(通过最小二乘法将局部误差对整体的影响降低到最小的方法)。

接下来我再一一介绍这两种方法。

基于路径跟踪的相位解包裹方法

此方法中的代表方法是枝切法,具体可以参考这一篇文献(讲得非常详细)。(152条消息) 光学算法——经典枝切法(解包裹算法)_翟天保的博客-CSDN博客_解包裹算法

主要思想是:

先判断出残差点并分出极性,

然后再以其中一个残差点为中心向外搜索另一残差点并连接,若极性相反,则结束搜索;若极性相同,则扩大搜索范围,直到极性相消或者扩大到最大的范围,结束搜索,再对下一个没有连接的残差点重复操作,直到覆盖整个图,将残差点都连接完毕为止。

然后再对非枝切线上的点进行解包裹,解完包裹后,再以这些点为起点,对枝切线上的点进行解包裹,直到解包完所有的像素点(当通过两个极性相反的残差点时,解包裹的误差会抵消,从而能将误差不推向之后的每一个像素点)。

最小二乘法的相位解包裹方法

主要思想是使缠绕函数的离散偏微分和解缠后函数的离散偏微分的差值达到极小,不考虑相邻像元上相位的积分,只通过使缠绕相位的梯度与真实相位的梯度差的平方最小来实现解缠。(具体算法可以参考这一篇文献里面的部分内容)

(152条消息) 可以参考以下里面关于最小二乘法解包裹的内容-其它文档类资源-CSDN文库

关于枝切法的matlab代码,可以参考一下这位前辈的(非常靠谱)

(152条消息) matlab枝切法解包裹_枝切法-图像处理文档类资源-CSDN文库

Original: https://blog.csdn.net/qq_51057357/article/details/123995924
Author: I am Ironman
Title: 相位解包裹

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/529951/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球