前文讲到了残点的计算,从残点出发,发展出了一类相位解包裹算法,空间(空域)相位解包裹(Spatial phase unwrapping)。

各种算法的具体流程还是放到后面再说,本文先讲讲相位解包裹算法的分类,对相位解包裹算法有个整体的认识。

两类相位解包裹算法

按我所读的文献来看,我见过的相位解包裹算法,一般都是分为两类,不过有两种分类方式,这里逐一地列一列,简单地讨论一下。

第一种分类

第一种是在Ghiglia的Two-Dimensional Phase Unwrapping: Theory, Algorithms, and Software书中的分类,相位解包裹算法分为两类,一类是路径跟踪方法(path-following methods),另一种是最小范数方法(minimum-norm methods),其中包含的算法如下图:

对于路径跟踪方法我比较熟悉,会在下面以及未来的文章讨论。不过对于最小范数方法,由于我没把全书看完,也没在结构光的的论文里面见过有人运用,所以我不了解就不讲了。

第二种分类

第二种分类在目前的综述文章里面出现频率非常高,应该最为人所熟悉。

相位解包裹算法分为两类,空间(空域)相位解包裹(Spatial phase unwrapping),时间(时域)相位解包裹(temporal phase unwrapping)。

空间(空域)相位解包裹(Spatial phase unwrapping)

空间相位解包裹其实就是第一种分类里面所说的路径跟踪方法(path-following methods)。这一类算法实际上就是在相位图中找一条最优的解包裹相位路径,是在同一个空间中进行相位解包裹的,所以称为空间相位解包裹。

经典的算法有:Goldstein枝切法(Goldstein's branch cut algorithm)、质量图导向法(quality guide phase unwrapping algorithm)、掩膜切割法(mask cut algorithm)等

空间相位解包裹在同一张相位图中,根据某一点与其邻点的相位差进行解包裹相位(Itoh方法),因此解包裹获得的相位被称为相对相位(relative phase map)。它只需要一张相位图即可完成,但各点的相位解包裹运算都是跟周围的邻点有关,一旦某点的相位由于相位混叠、相位噪声导致解包裹错误,其错误会传递到后续所有点的相位解包裹过程中,这种错误传递又被称为“拉丝现象”。

时间(时域)相位解包裹(temporal phase unwrapping)

时间相位解包裹是通过在不同时间得到的两个或多个不同频率的相位图来进行解包裹。它是在时间序列上通过进行解包裹的,所以称为时间相位解包裹。

常见的算法有:

1.多频法Multi-frequency (hierarchical) ,顾名思义,用多个频率的相位图分级解包裹相位

2.多频外差法Multi-wavelength (heterodyne),通过将两个频率接近的相位图差频得到一个频率很小的相位图,进行解包裹

3.几何约束的多频分级法Geometrical constraint ,基本类似于多频法。

(我也不确定翻译合不合适,中文文献看得比较少不确定通用的翻译是啥)

时间相位解包裹是根据同一位置(像素)不同时间得到的相位图来进行相位解包裹,获得的相位被称为绝对相位。在时间相位解包裹过程中,每个点的相位只与不同频率的相位图上同一位置的点有关,与其邻点无关,因此即使某点的相位由于相位混叠、相位噪声导致解包裹错误,这样的错误并不会传递

我觉得下面这个图应该能感觉得到空间和时间的区别,空间相位解包裹是在同一张相位图中解包裹,所以错误会传递;时间相位解包裹是在时间序列上解包裹,所以错误不会在空间中传递。

参考文献:

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

[2] Zhang S. Absolute phase retrieval methods for digital fringe projection profilometry: A review[J]. Optics and Lasers in Engineering, 2018, 107: 28-37.

[3] Zuo C, Huang L, Zhang ML, et al. Temporal phase unwrapping algorithms for fringe projection profilometry: A comparative review[J]. Optics and Lasers in Engineering, 2016, 85: 84-103.

[4] Zhang S. Digital multiple wavelength phase shifting algorithm[C]//Optical Inspection and Metrology for Non-Optics Industries. International Society for Optics and Photonics, 2009, 7432: 74320N.

[5] Hyun J S, Zhang S. Enhanced two-frequency phase-shifting method[J]. Applied optics, 2016, 55(16): 4395-4401.

[6] An Y, Hyun J S, Zhang S. Pixel-wise absolute phase unwrapping using geometric constraints of structured light system[J]. Optics express, 2016, 24(16): 18445-18459.

[7] Dai J, An Y, Zhang S. Absolute three-dimensional shape measurement with a known object[J]. Optics express, 2017, 25(9): 10384-10396.

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

相位解包裹(四)两类相位解包裹算法相关推荐

  1. 一文详解假设检验、两类错误和p值

    我们在生活中会遇到很多带有不确定性的问题,比如什么样的男孩子更容易找到女朋友,拥有什么样的品质更易成功.科学方法告诉我们,面对这些问题,要"大胆假设,小心求证".而假设检验就是这样 ...

  2. android鼠标滚轮事件坐标,Android触摸滑动全解(四)——MotionEvent详解

    Android触摸滑动全解(四)--MotionEvent详解 在分析View和ViewGroup的触摸事件时,我们已经接触到了MotionEvent类,它是用来存储我们当前手指移动的状态的,比如按下 ...

  3. JDBC学习笔记01【JDBC快速入门、JDBC各个类详解、JDBC之CRUD练习】

    黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...

  4. 相位解包裹 matlab,二维相位解包裹matlab

    第39卷第3期2015年5月 激 光 技 术LASERTECHNOLOGY Vol.39,No.3May,2015 文章编号: 1001-3806(2015)03-0423-05 相位解包裹中欠采样问 ...

  5. 【相位解缠】一维信号相位解包裹原理及其演示实例

    一.原理 如图1所示是灰度级为256的相位图,对于相位图中的每一个像素点,它的光强与其相应的相位是有联系的.结合式(1)可知,用于相位计算的反正切值函数的主值位于区间(−π,π](-\pi ,\pi ...

  6. ❤️导图整理数组6:四数组的四数之和,详解Counter类实现哈希表计数,力扣454❤️

    此专栏文章是对力扣上算法题目各种方法的总结和归纳, 整理出最重要的思路和知识重点并以思维导图形式呈现, 当然也会加上我对导图的详解. 目的是为了更方便快捷的记忆和回忆算法重点(不用每次都重复看题解), ...

  7. 我的Unity学习笔记----------API常用方法和类详解(四)

    二十三. Camera组件(类) 通过获取camera组件把场景中鼠标的位置(点)转化为射线 mainCamera=GameObject.Find("MainCamera").Ge ...

  8. OpenCV Mat类详解和用法(官网原文)

    参考文章:OpenCV Mat类详解和用法 我马克一下,日后更 官网原文链接:https://docs.opencv.org/3.2.0/d6/d6d/tutorial_mat_the_basic_i ...

  9. 转载:c+string类详解

    C++ string 类详解 </h1><div class="clear"></div><div class="postBod ...

最新文章

  1. GitHub App终于来了,iPhone用户可尝鲜,「同性交友」更加便捷
  2. html如何让边框变圆,CSS怎样做出自适应圆形边框?
  3. layui前端页面table表格怎么格式化转换时间_前端开发面经知识点总结
  4. “东湖”的艄公--漫步绍兴(四)
  5. C/C++得到系统启动项
  6. Fragment间的通信
  7. 红点中国、红杉中国联合领投,WakeData惟客数据完成1000万美元B轮融资
  8. linux虚拟光驱挂载方法,Linux操作系统下虚拟光驱(iso)的挂载
  9. 选择Ruby的37个理由【转载】
  10. zabbix利用mutt和msmtp配置邮件报警
  11. python tensorflow 文本提取_如何在tensorflow中保存文本分类模型?
  12. andorid关于selector更换图片失效
  13. opencv之划痕缺陷检测
  14. Python之路(一)初识Python
  15. 【Matlab代码】基于小波分析的音频信号的特征识别
  16. 华为网络安全工程师:HCNA-Security(H12-711)题型解析(第一部分)-马青-专题视频课程...
  17. 图像金字塔实现图像融合(基于opencv-python)
  18. (干货分享)如何下载网站上的视频
  19. 数据处理第一节:选取列的基本到高级方法
  20. wim工具扫描linux磁盘,install.wim怎么提取 install.wim文件在哪里

热门文章

  1. 一只公鸡5块钱,一只母鸡3块钱,3只小鸡一块钱,一个农夫用100块钱买100只鸡(不许解方程),怎么实现,编写java程序。java算法
  2. Sketchup二次开发
  3. htmlCSS-----CSS选择器(上)
  4. react+ts+redux+react-router-dom+less+反向代理+antd
  5. 三十位游戏业界最有影响力的人
  6. Solaris10 网卡驱动安装(Intel(R) Pro/100 VM Network Connection网卡)
  7. 53-基于51单片的智能饮水机设计(实物图+源码+原理图)
  8. 【操作系统】请写出最多允许4人同时进餐的哲学家进餐问题的算法(视频中的代码有点错误)
  9. ASP isPostBack
  10. Tomcat6w.exe 运行 提示 指定的服务未安装 unable to open the service 'tomcat6'解决方案