Although the traditional dehazing algorithm can improve the clarity of hazy weather images, it may lead to the loss of many details and the distortion of color saturation in the process of processing. In order to overcome this defect and enhance the details of the image, a single image dehazing algorithm based on non-subsampling contourlet transform was proposed. First, the captured fog images are mapped from RGB space to HSI space, and the luminance channel map and saturation channel map are processed separately. The luminance channel image is decomposed by non-subsampling contourlet. The obtained high-frequency components are filtered by a guided filter, which can smooth the image while maintaining the edge. The obtained low-frequency components are processed by the single-scale Retinex algorithm to enhance the details of hazy areas in the image. A new luminance channel image is obtained through certain fusion rules and the inverse transformation. Then, the degradation model of the saturation component map is established. The parameters are estimated using the dark channel prior principle, and the estimated saturation map is obtained. Finally, the new luminance channel image, the estimated saturation image and the original hue channel image are inversely transformed to RGB space, resulting in a dehazed image. Experiments show that the method in this paper can solve the problem of color distortion in bright areas to a certain extent and the color saturation of the image, while keeping the overall outline structure of the image clearly and the edge details prominent. The visibility of the whole image is also improved, which is prior to the traditional detection algorithms.