File Exchange

image thumbnail

2D phase unwrapping algorithms

version 1.1 (40 KB) by

Implementations of the phase quality path following method and Goldstein's branch cut method.



View License

Two 2D phase unwrapping approaches are included:
1. Phase quality guided path following method.
2. Goldstein's branch cut method.

The algorithms are described in:
D. C. Ghiglia and M. D. Pritt, Two-Dimensional Phase Unwrapping:
Theory, Algorithms and Software. New York: Wiley-Interscience, 1998.

Comments and Ratings (14)

behnam tayebi


I'd prefer them as single functions instead of scripts that I still have to modify...


A (view profile)

I am trying to find the temperature of the candle flame using its interferogram.The image is not a complex image as given in the submission.I have found the phase using the method described in the following publication. "Digital phase-step interferometry: a simplified approach
D.C. WILLIAMS, N.S. NASSAR, J.E. BANYARD, M.S. VIRDEE" .when i try to unwrap this phase using this code i am getting wrong unwrapped image..i.e., a white image.that is not the required one.Please help me out in this regard.
Thank you


Rang (view profile)


Peng (view profile)

That is great!


Bahar (view profile)

Helped me a lot!

Tim Zaman

Remarkably slow..

Tim Zaman


peter (view profile)

Armin Ka

I need a phase unwrapping algorithm to unwrap the interference phase which is bounded between -pi, pi or 0, 2*pi
Thanks for your help.


Eric (view profile)

Useful for unwrapping small images, but not for large images. A 510x510 array took 25 minutes on my machine. The following improvements need to be made for larger arrays:

1. Implement the "postponed" list described in Ghiglia and Pritt.
2. Avoid using Matlab's unwrap() function for unwrapping a length-two vector. Instead use Itoh's Method for a length 2 vector explicitly:
D = psi(2)-psi(1);
delta = atan2(sin(D),cos(D);
phi = psi(1) + delta;
3. Resize matrices as vectors

This yields about 20X speed improvement for the 510x510 array size.


Hex (view profile)


Deva (view profile)

Thanks for the contribution!! It is a much more elegant code than the one I was attempting to write from the pseudocode!

As I was testing out the code, I noticed that the algorithm does not go back and unwrap the branch cut pixels, as is described in Ghiglia and Pritt. Perhaps that would be a good addition to the next version?



Modified the Goldstein algorithm to allow only part of a phase image to be unwrapped.

MATLAB Release
MATLAB 7.5 (R2007b)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Win prizes and improve your MATLAB skills

Play today