二维相位解包裹存在的问题(2D Phase-unwrapping)

       有许多应用程序可以生成包裹的相位图像。例如合成孔径雷达(SAR)、磁共振成像(MRI)和条纹图分析。这些应用程序生成的包裹相位图像不可用,除非首先将其展开以形成连续相位图。这意味着,对于所有这些应用来说,开发一种鲁棒的相位展开算法是一个重要的课题。在本文中,我们不会仅在这些应用程序的特定上下文中讨论相位展开,而是将一般性地解释二维相位展开问题的概念。

1. 二维相位展开简介

       我们将解释二维相位展开过程如下。假设我们有一个计算机生成的连续相位图像,其中不包含任何相位包裹(2pi跳跃)。该图像可以显示为视觉强度阵列,如图1(a)所示。同样的图像也可以绘制为3D表面,如图1(b)所示。图1(c)以曲线方式绘制了该图像(第410行)中一行的强度。请注意,我们在这里使用的术语“连续”不是指模拟信号,而是指不包含任何相位包的离散1D相位信号或离散2D相位图像。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5YWJ5a2m56CB5Yac,size_20,color_FFFFFF,t_70,g_se,x_16

图1:(a)以灰度显示的计算机生成的连续相位图;(b)相位解包裹后的面形图;(c)相位图第410行的数值曲线

       现在让我们将连续相位图包裹起来,包裹后的图像如下所示:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5YWJ5a2m56CB5Yac,size_20,color_FFFFFF,t_70,g_se,x_16

图2:(a)以灰度显示的计算机生成的包裹相位图;(b)相位解包裹后的面形图;(c)相位图第410行的数值曲线

2. 噪声对二维相位展开的影响

       相位展开过程是通过计算两个连续样本之间的差值来检测图像中是否存在相位包裹。如果这个差异大于+pi,那么在相位展开时认为在这个位置有一个包裹。这可能是一个真正的相位包裹,也可能是由于存在噪音实际上是一个假包裹。为了研究噪声对二维相位展开的影响,我们将噪声添加到模拟的连续相位图图3(a)中。如图3(c)所示,当噪声方差增加到0.6时,在这种情况下,如图3(d)所示,常用的Itoh相位展开算法无法成功展开该图像。注意,2pi不连续性仍然存在于未解包的相位图像中。

       正如所学习的1D相位展开教程中所解释的,在相位展开过程中会出现误差累积,这就是使带噪2D包裹相位图像展开过程复杂化的原因。图3(e)显示了使用Itoh算法处理的图像:使用“先按行解包,再按列解包”的方法实现。该算法首先对所有行逐个进行顺序相位展开,然后在所有行的展开完成后,再对所有列逐个展开,从而展开图像。仔细检查图3(e)可以发现有关误差累积问题的一些信息。例如,图3(e)中的第455行包含一个假包装。这种假包裹会产生2pi错误会在整行传播,从错误解包的位置一直传播到行尾。在处理此包裹相位图的一些其他行时,也会出现类似的错误。

       图3(g)显示了使用Itoh算法处理的图像:使用“先按列解包,再按行列解包”的方法。与上述方法相比,该算法改变了行和列的相位展开顺序。换句话说,它首先对所有列进行顺序相位展开,一次展开一列,从而展开图像。然后,一旦所有的列都被展开,算法就会继续依次展开所有的行,一次一行。仔细检查图3(g)可以发现一些关于误差累积问题的信息。例如,图3(g)中的第360列包含一个假包裹。这种伪包裹产生的2pi 错误会在整个列中传播,从错误的位置一直传播到列的末尾。在处理包裹相位图的一些其他列时,也会出现类似的错误。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5YWJ5a2m56CB5Yac,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5YWJ5a2m56CB5Yac,size_20,color_FFFFFF,t_70,g_se,x_16

图3:(a)和(b)生成的噪声连续相位图像;(c)和(d)噪声相位图像被包裹;(e)和(f)使用Iroh算法的相位展开:法一;(g)和(h)使用Iroh算法的相位展开:法二。噪波方差设置为0.6。

       为了防止错误传播的发生,研究人员开发了许多相位展开算法,并对其中一些算法进行了解释。此外,在利物浦约翰摩尔斯大学(LJMU)的通用工程研究所(GERI)开发了一种稳健的2D相位展开算法,称为2D-SRNCP相位展开算法该算法基于可靠性排序,遵循非连续路径,在处理破坏真实包裹相位图像的噪声方面表现出优异的性能。不要担心它如何工作的细节,只需将其视为一种非常先进和健壮的展开算法,并将其用作工具。

       图4为使用2D-SRNCP相位展开器处理图3(c)中所示的包裹相位图像。结果图在图4(a)中显示为灰度阵列,在图4(b)中显示为3D曲面图。将图3(a)和(b)与图4(a)和(b)分别进行比较,可以发现2D-SRNCP相位展开算法成功地正确处理了包裹相位图像,并防止了错误传播。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5YWJ5a2m56CB5Yac,size_20,color_FFFFFF,t_70,g_se,x_16

图4:(a)和(b)使用2D-SRNCP算法展开的相位图像。

       请注意,Matlab版2D-SRNCP相位展开文件中的“phaseUnwrap.cpp”是用C编程语言编写的,调用这个C程序需要先安装Matlab的MinGW64编译器(30秒在线安装),将在Matlab提示符中键入以下命令编译该.cpp文件:mex phaseUnwrap.cpp

3. 对噪声图像(不滤波)的解包裹测试

       为了验证2D-SRNCP相位展开算法的有效性,我们生成了4幅四步移相的含有高斯噪声的干涉图进行解包裹测试,如下图所示:

5f822a1178e514374f2cde346c2f026b.png

图5 4幅四步移相的含有高斯噪声的干涉图

       基于2D-SRNCP的相位解包裹Matlab主程序代码,如下所示(调用了上述的phaseUnwrap.cpp程序):

101a0e3944dfc06ab1d0a4f38535102b.png

图6 基于2D-SRNCP的相位解包裹Matlab主程序代码

       解包结果如下(像素256×256,历时 3.802049 秒):

1635f1272cefe0b9bf21b30acbec4adf.png

图7 解包结果图(色度条单位为rad)

通过以下链接,可付费下载Maltab版2D-SRNCP相位解包程序:

2D-SRNCP相位解包裹(Matlab和C代码)

其中:主程序(Main.m)是Matlab代码,解包程序(phaseUnwrap.cpp)是C代码(Matlab可直接调用)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

光学码农

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值