Underwater image enhancement is important for images captured in underwater because underwater images often suffer from color cast, low contrast and degraded visibility due to the absorption and scattering of light in water. In this paper, we propose a novel algorithm for underwater image restoration based on a generalization of the dark channel prior (GDCP). Though there are various types of underwater images, we especially focus on underwater images with depth because these images are not enhanced well by current algorithms. The proposed algorithm is composed of the iteration of GDCP and image fusion. Additionally, we introduce the new ambient light estimation to adapt to more types of images. Experimental results show that proposed algorithm is effective for various types of underwater images, especially for the images with depth.