一、Flynn最小不连续算法原理
Fynn最小不连续算法是求解包裹相位的最小加权不连续解
在此定义一对毗邻像素的差分超过π时为不连续,毗邻像素可能是垂直方向或水平方向,定义差分的最邻近整数个2π为跳变数,因此垂直方向和水平方向跳变数分别由下式定义
ϕ
m
,
n
{{\phi }_{m,n}}
ϕm,n是解包裹相位
w
m
,
n
v
w_{m,n}^{v}
wm,nv和
w
m
,
n
z
w_{m,n}^{z}
wm,nz是权重,
q
m
,
n
{{q}_{m,n}}
qm,n是质量图的值。
当取 q m , n = 1 {{q}_{m,n}}=1 qm,n=1即不加权的Flynn最小不连续算法,因此有没有质量图Flynn最小不连续算法均可工作,找到的解包裹相位表面与包裹相位数据一致,在某种意义上不连续(称作跳变数)最小。Flynn最小不连续算法等价于最小L1范数的一致解。 Flynn算法找到了真正的最小解,而不仅仅是局部最小解。除了最小Lp范数算法外,Flynn最小不连续算法的运行时间和内存要求远远高于其他算法。
二、实验验证
首先,生成一幅包裹相位图,如下图所示:
此处,将质量图设置为1,即采用不加权的最小不连续算法获取的解包裹相位如下图所示:执行这一过程大约需要20秒左右。
三、资源获取
上述资源可从以下链接处获取:
https://download.csdn.net/download/qq_36584460/85007868
资源包含以下内容:
1) flynn_blx.m
2) flynn_blx-GBK格式.m (防中文注释乱码)
3) 基于Flynn最小不连续相位解包裹算法.m
4) 基于Flynn最小不连续相位解包裹算法-GBK格式.m(防中文注释乱码)
5) 动画演示GIF.gif
需要注意的是,运行上述程序后,需要在图中选择一个已知相位点,如下图所演示。此外,在本例中将底板包裹图设置为0,(相当于在干涉系统采用了双曝光傅里叶变换,或者4+4时间相移法,得到的包裹相位图中已经减去了底板包裹相位)。对于光栅投影系统,那么首先需要先获取底板包裹图,此时只需将底板包裹相位图进行相应的修改即可。
四、其他解包裹算法
-
最小二乘法解包裹
https://blog.csdn.net/qq_36584460/article/details/122682867 -
基于快速质量图导向法的相位解包裹
https://blog.csdn.net/qq_36584460/article/details/122690728 -
基于最小二乘、迭代和相位梯度校正的解包裹算法
https://blog.csdn.net/qq_36584460/article/details/123410789 -
基于Glodstein枝切法相位解包裹算法
https://blog.csdn.net/qq_36584460/article/details/123442944 -
基于可靠度排序的非连续路径解包裹算法实例分析
https://blog.csdn.net/qq_36584460/article/details/123457617 -
基于幅度排序列表、多聚类的相位解包裹算法
https://blog.csdn.net/qq_36584460/article/details/123592285
最后,如有任何疑问,可私信交流讨论~可提供相关技术支持!