Skip to content

charmingbrew/phase-unwrap

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

2D and 3D phase unwrapping

This is a Python wrapper for 2D and 3D phase unwrapping code based on:

More information about the code can be found on GERI homepage: 2D, 3D. The general principle and applications are the same as those for a 1D unwrap available in numpy.

Usage

The package is based on cffi and requires it for installation:

$ pip install cffi
$ pip install unwrap

The interface consists of a single function:

>>> from unwrap import unwrap
>>> unwrapped_array = unwrap(
...    wrapped_array,
...    wrap_around_axis_0=False,
...    wrap_around_axis_1=False,
...    wrap_around_axis_2=False)

It takes a 2- or 3-dimensional numpy array of floats, wrapped_array, and returns an array with the same shape with the values changed by integer multiples of 2 pi such that the whole array has the least amount of jumps.

wrapped_array can be a masked array, in this case masked entries are ignored during the phase unwrapping process. This is useful if the wrapped phase data has holes or contains invalid entries.

If the optional arguments wrap_around_axis_0 etc. are set to True, then phase unwrapping takes place also across the boundaries of the specified axis, i.e., the first and last pixel along this axis are assumed to be neighbours.

Internally the wrapped array is converted to a C-contiguous array of np.float32, therefor the unwrapped array also has this data type.

Usage examples can be found in test/test_unwrap.py.

People

The original C code by the authors mentioned above has been slightly modified by Gregor Thalhammer for using it as a library. Bogdan Opanchuk changed the Python wrapper to use cffi instead of Cython and improved packaging.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published