Single image dehazing is a challenging task because haze seriously affect the visibility of images, and it further brings inconvenience to advanced computer vision analysis. In this paper, a novel and efficient algorithm is proposed to remove haze from a single image. Instead of obtaining transmission from fixed priors and constraints, a double exponential attenuation model (DEA model) based on color attenuation prior is established to compute transmission adaptively. DEA model contains two single exponential attenuation parts that can compensate each other. In addition, a normal unilateral constraint rule (NUCR) is designed to make the transmission more accurate. More importantly, DEA model has a dynamic adjustment function with different weights for different inputs. To circumvent distortion in sky and bright areas, an effective and robust approach is introduced to acquire atmospheric light value. Finally, the clear image can be restored with atmospheric scattering model. Several experimental results on synthetic and real-world images show that the proposed algorithm can protect and recover the detailed information excellently. The performance on synthetic datasets I-HAZE, O-HAZE and HazeRD are 0.762/16.598 (SSIM/PSNR),0.787/17.193, and 0.783/17.104, respectively.