MATLAB Image Processing _ homomorphic filtering, matlab Image Processing homomorphic
Homomorphic filtering: uses the generalized superposition principle to filter the homomorphic system. Homomorphic filtering is an image processing method that combines frequency filtering and grayscale transformation. It relies on the image illumination/reflectivity model as the basis for processing in the frequency domain, the image quality is improved by compressing the brightness range and enhancing the contrast. This method can make image processing conform to the non-linear characteristics of human eyes for brightness response, avoiding the distortion of direct Fourier transformation processing on the image. The basic principle of homomorphic filtering is to regard the gray value of a pixel as the product of two components: illumination and reflectivity. Because the illumination is relatively small, it can be regarded as the low-frequency component of the image, while the reflectivity is the high-frequency component. The effects of illumination and reflectivity on Pixel gray-scale values are processed separately to reveal detailed features in the shadow area.
The basic process of homomorphic filtering is as follows: S (x, y) ----> Log ----> DFT ----> frequency domain filtering ----> IDFT ----> Exp ----> T (x, y) S (x, y) indicates the original image, T (x, y) indicates the processed image, and Log indicates the logarithm operation; DFT represents the Fourier Transformation (in practice, the fast Fourier transformation FFT is used); IDFT represents the Fourier inverse transformation (in practice, the fast Fourier inverse transformation IFFT is used); Exp represents the exponential operation.
Below is a typical difference between homomorphic filtering and other image processing methods:
Implementation Code:
Function I3 = test_tontai (I) I = double (rgb2gray (I); [M, N] = size (I); rL = 0.5; rH = 4.7; % You can adjust the parameter c = 2; d0 = 10; I1 = log (I + 1); % to retrieve the logarithm FI = fft2 (I1 ); % Fourier transform n1 = floor (M/2); n2 = floor (N/2); for I = 1: M for j = 1: n d (I, j) = (i-n1 ). ^ 2 + (j-n2 ). ^ 2); H (I, j) = (rH-rL ). * (exp (c * (-D (I, j ). /(d0 ^ 2) + rL; % Gaussian homomorphic filter endendI2 = ifft2 (H. * FI); % Fourier inverse transformation I3 = real (exp (I2); subplot (122), imshow (I3, []); title ('post-homomorphic filter enhancement ');
Experiments show that homomorphic filtering is similar to high-dynamic range compression. For example, you can highlight the hidden part of the image.
The original image is a low-exposure image:
After homomorphic filtering:
Note: original article, reproduced please indicate the source: http://blog.csdn.net/scottly1/article/details/42705271