Image Dehazing Using Curvelet Transform and Gaussian Inverse Filtering

Resource Overview

Image Dehazing Combining Curvelet Transform and Gaussian Inverse Filtering with Algorithm Implementation Details

Detailed Documentation

Image dehazing is a common image enhancement technique aimed at eliminating haze effects caused by atmospheric scattering to restore clear, high-contrast images. The method combining Curvelet transform and Gaussian inverse filtering effectively addresses this problem.

### Method Overview Curvelet Transform: The Curvelet transform is a multiscale geometric analysis tool particularly suitable for capturing curved and edge features in images. In dehazing tasks, the Curvelet transform can separate low-frequency components of haze (global brightness variations) from high-frequency components of image details. Key implementation detail: In MATLAB, this can be implemented using the FDCT toolbox (Fast Discrete Curvelet Transform) which provides functions like fdct_wrapping() for forward transform and ifdct_wrapping() for inverse transform. Gaussian Inverse Filtering: Based on the atmospheric scattering model, Gaussian inverse filtering is used to estimate the haze degradation function and inversely restore the original clear image. This method assumes that haze follows a Gaussian distribution in the frequency domain, reducing haze effects through inverse filtering. Algorithm explanation: The Gaussian degradation function can be modeled as H(u,v) = exp(-k(u²+v²)) where k controls the spread, and inverse filtering applies 1/H(u,v) to compensate for haze.

### Implementation Approach Preprocessing: Convert the input image to an appropriate color space (such as HSV) and extract the luminance component for processing. Code implementation: Use rgb2hsv() for color space conversion, then work with the V channel representing luminance. Curvelet Decomposition: Apply Curvelet transform to the luminance component to separate coefficients at different scales and orientations. Function description: The decomposition typically produces multiple scales (e.g., 4-5 scales) with anisotropic directional subbands at each scale. Haze Estimation: In the low-frequency subbands, use Gaussian model fitting to estimate the haze distribution and degradation function. Implementation detail: Fit a 2D Gaussian surface to the low-frequency coefficients using least-squares optimization (lsqcurvefit() in MATLAB). Inverse Filter Recovery: Apply Gaussian inverse filtering to low-frequency components to suppress haze effects while preserving high-frequency details. Algorithm step: Multiply low-frequency Curvelet coefficients by the inverse of the estimated Gaussian PSF (Point Spread Function). Image Reconstruction: Transform the processed Curvelet coefficients back to the spatial domain using inverse Curvelet transform, merge color components, and output the final dehazed image. Code sequence: Apply ifdct_wrapping(), then convert back to RGB using hsv2rgb() with modified luminance and original chrominance components.

### Performance Evaluation Comparison between original hazy images and dehazing results shows: Natural global brightness without over-enhancement Preserved edge and texture details, such as building contours or tree branches High color fidelity without significant color shifts

This method performs well in light to moderate haze scenarios, but may require parameter optimization or combination with other dehazing strategies for heavy fog or extreme low-light conditions. Parameters like the Gaussian spread factor and Curvelet scale selection may need adaptive tuning based on haze density.