Phase unwrapping is a crucial process to obtain the absolute phase profile in many optical phase measurement techniques such as interferometry, holography, profilometry, etc. In this paper, we have studied several phase unwrapping algorithms based on solving the discrete Poisson equation. The differences among those algorithms lie in two aspects: one is the calculation of the input for the Poisson equation using the wrapped phase data and the other is the way to compute the output (unwrapped phase data) using the corresponding input. Firstly, the method to compute the input for the Poisson equation was investigated using the finite difference and fast Fourier transform (FFT) methods. Then different methods, based on FFT or discrete cosine transform, were employed to calculate the unwrapped phase, and their performances were compared in terms of accuracy and efficiency. To enhance the precision of those algorithms, an iteration strategy was introduced and its performance was investigated under different noise conditions. Finally, several pieces of real phase data was tested by using the direct and iterative methods. The detailed software package can be found online (www.mathworks.com/matlabcentral/ fileexchange/71810-phase-unwrapping-algorithms-by-solving-the-poisson-equation).