二维和三维相位展开
unwrap的Python项目详细描述
这是一个用于二维和三维相位展开代码的python包装器,基于:
- (2d)M.A.Herréez,D.R.Burton,M.J.Lalor和M.A.Gdeisat,“基于非连续路径可靠性排序的快速二维相位展开算法”,Applied Optics, Vol. 41, Issue 35, pp. 7437-7444 (2002),
- (3D)H.Abdul Rahman,M.Gdeisat,D.Burton,M.Lalor,“基于非连续路径可靠性排序的快速三维相位展开算法”,Proc. SPIE 5856, Optical Measurement Systems for Industrial Inspection IV, 32 (2005)。
有关代码的更多信息可以在geri主页上找到:2D,3D。 一般原理和应用与1d unwrapavailable in numpy相同。
用法
该包基于cffi,安装时需要它:
$ pip install cffi $ pip install unwrap
接口由一个单独的函数组成:
>>> from unwrap import unwrap >>> unwrapped_array = unwrap( ... wrapped_array, ... wrap_around_axis_0=False, ... wrap_around_axis_1=False, ... wrap_around_axis_2=False)
它接受一个二维或三维的numpy浮点数组wrapped_array,并返回 具有相同形状的数组,其值更改为整数 2π的倍数,使得整个数组的 跳跃。
wrapped_array可以是masked array, 在这种情况下,在相位展开过程中忽略屏蔽项。 过程。如果包装的阶段数据有孔或包含 无效条目。
如果可选参数wrap_around_axis_0等设置为 True,然后相位展开也会跨越边界进行。 指定轴的,即沿着该轴的第一个和最后一个像素。 被认为是邻居。
在内部,包装数组转换为 np.float32,因此未包装数组也具有此数据类型。
用法示例可以在test/test_unwrap.py中找到。