The invention will be described in detail referring to the enclosed drawings, wherein:
a is a replica of the picture of
b shows a bilateral filter mask used for obtaining the picture of
a is a replica of the picture of
b shows the Gaussian filter mask used for obtaining the picture of
a shows a third picture to be corrected in accordance with the present invention;
b shows the histogram of the image of
a is a replica of the image of
b shows the histogram of the picture of
a shows a fourth image to be corrected in accordance with the present invention;
b shows the histogram of the picture of
a is a replica of the image of
b shows the histogram of the picture of
a is a replica of the image of
b shows the histogram of the picture of
a is a replica of the image of
b shows the histogram of the picture of
From each pixel of an input image to be corrected, which may be an RGB picture or a picture of a different kind, the luminance Y and chrominance components Cb and Cr are extracted. The next operation of Y sub-sampling includes scaling down the converted image to reduce the complexity of the algorithm. This operation is different from the analogous step in Moroney's method, wherein the input images are scaled down to a fixed size format (for example, 120×160) before carrying out the correction operations.
In contrast, the scale factor of the image remains constant in accordance with the method of the invention. Therefore, details of input pictures are preserved, independently of their size. With the prior method of Moroney, a high resolution picture is shrunk to an extent that certain details (especially borders of objects) may be corrupted or even completely lost.
To better understand the differences between Moroney's method and the method of the invention, a common local contrast correction technique is briefly described.
The gamma correction is an exponential correction commonly included in image processing algorithms and includes processing the input image through a constant power function, with exponent γ.
Let us assume for simplicity a grey image I(i,j). The gamma correction transforms each pixel l(i,j) of the input image into the output O(i,j), according to the following rule:
where γ is a positive number selected in accordance with the original luminance and the desired strength of correction to be applied. The variable n represents the bit depth of the image, that is, the number of bits used to represent a pixel value.
Obviously, if the input picture is a color picture, the quantities I(i,j) and O(i,j) represent the luminance of the input and of the output image, respectively. This correction gives good results for totally underexposed or overexposed images. However, when both underexposed and overexposed regions are simultaneously present in an image, this correction is unsatisfactory.
In the image represented in
γ=0.35 and n=8.
For the case of an image that has only certain regions with a correct illumination and other regions that are not well exposed, a local correction would be needed for making distinct shadow and highlight adjustments.
For a local correction, the exponent of the gamma correction will not be a constant but instead will be chosen as a function that depends on the pixel (i,j) to be corrected and on its neighboring pixels N(i,j). Equation 1 thus becomes:
Moroney [2] suggested the following expression for the exponent:
where mask(i,j) is an inverted Gaussian low-pass filtered version of the intensity of the input image.
Mask values greater than M, corresponding to dark pixels with dark neighboring pixels in the original image, will generate exponents γ smaller than 1 (equation 3), and therefore, from equation 2, an increase of the luminance will be observed. Vice-versa, values smaller than M, corresponding to bright pixels with bright neighboring pixels in the original image, will generate exponents γ greater than 1 and a decrease of the luminance. Mask values equal to M will produce an exponent equal to one thus leaving the original input unmodified. The greater the distance from the mean value M, the stronger the correction introduced. It should be noted that the white and black pixels remain unaltered independently on the value of the exponent γ.
Differently from the method of Moroney, the gamma correction according to the method of the invention is carried out with the following equation:
wherein BFmask(i,j) is a an inverted low-pass replica of the intensity of the input image, filtered with a bilateral filter (for example, of the type described in the article by Tomasi and Manduchi [16]) and α is a parameter that depends on the image properties, as will be explained below
The bilateral filtering technique preserves contours of depicted objects in a processed image, while in a Gaussian low-pass filtering this does not happen.
The Gaussian low-pass filtering computes a weighted average of pixel values in the neighborhood, in which the weights decrease with distance from the center. The assumption is that neighboring pixels of a pixel to be filtered are likely to have similar values to the latter, thus it is appropriate to average their values. However, this assumption of relatively slow spatial variations fails at edges of depicted objects, which are consequently blurred by the low-pass filtering.
The invention provides a method of correcting contrast of pictures by using a bilateral filtering technique, such as the technique disclosed in the article by Tomasi and Manduchi [16], for generating a value of the exponent γ of a gamma correction algorithm that varies as a function of the pixel to be corrected and of its neighboring pixels.
While bilateral filtering techniques have always been proposed and used for carrying out spatial filtering, the inventors have found a surprising effectiveness of bilateral filtering for generating a mask that in turn is advantageously suitable for carrying out a filtering operation in the luminance domain.
This invention will be described in detail referring to the implementation of an exponential correction of the contrast in an image, but one skilled in the art would recognize that other contrast correction techniques different from the commonly used exponential correction technique will benefit by the association of a bilateral filtering mask with other filtering techniques that are implemented in the luminance domain.
Indeed, in filtering techniques that operate in the luminance domain, there is always at least a parameter, the value of which is adjusted from time to time to correct the luminance of each pixel. The correction of such a fundamental parameter (as the γ exponent value in the common gamma correction technique) may be advantageously made as a function of the luminance of the pixel and of its neighboring pixels through a bilateral filtering mask.
As will be shown below, by using equation (4) of the invention instead of equation (3) of Moroney [2], the halo effects that are present in certain images with large luminance gradients, processed with a spatial Gaussian filter, are significantly reduced.
The preferred embodiment of the local contrast correction method is based on an algorithm for correcting locally in an exponential fashion the luminance according to the following formula:
wherein BFmask(i,j) is given by inverting the input image
I
inv(i,j)=2n−1−I(i,j) (6)
and filtering each pixel of the inverted image with a bilateral low-pass filter acting over a working window of size (2K+1)×(2K+1) centered on the pixel to be filtered, that is:
where k(i,j) is the normalization factor given by:
In equations 6 and 7, σ1 is the standard deviation of the Gaussian function in the spatial domain, and σ2 is the standard deviation of the Gaussian function in the luminance domain.
Equation (7) is substantially a weighted average and the parameters σ1 and σ2 determine the weight of each luminance value in the average. A larger σ1 blurs more. That is, it combines values from more distant image locations. As σ2 increases, the bilateral filter approaches the Gaussian low-pass filter.
The dimension K of the window depends on the shape of the spatial Gaussian function through the following relation:
K=fix(α×σ) (9)
wherein fix(.) is an operator that rounds off its argument to the closest larger integer, and a is a properly determined scaling factor. This factor should be large enough to be sure that the working window substantially contains all the pixels that give a significant contribution in Equation (7), but not so large to include pixels that are too far from the central pixel (i,j). A good compromise value may be a=2.5.
If σ1 is too large, the image results are too blurred, the exponent tends to a constant value and Equation (5) tends toward the simple gamma correction of Equation (1). Vice-versa, if the window is too small, the image is not blurred and the correction does not take into account the local properties of the image.
The picture of
By comparing
The reason for this result may be clearly understood by comparing
Different authors have followed the ideas of Tomasi and Manduchi and proposed other bilateral filtering techniques that may be used in the method of the invention instead of the Tomasi and Manduchi technique. For example, one of these techniques is disclosed in the article by Durand and Dorsey [17] that provides a theoretical framework for bilateral filtering, and also for accelerating the method by using a piecewise-linear approximation in the intensity domain and sub-sampling in the spatial domain.
To make the bilinear filter algorithm faster, the spatial Gaussian function in equation (6) may be simply replaced by a box filter of size ν1+1. That is, the spatial weights of the bilateral filter are discarded and only the luminance weights are retained.
Tests carried out by the inventors showed that images corrected according to this alternative embodiment of the invention do not show relevant differences with respect to images corrected according to equation (7), but the time needed for carrying out the correction is sensibly reduced (even by a factor of 7 in the case of
The value of the parameter α in equation (5) may be determined as a function of the desired result. By adjusting this parameter it is possible to obtain different contrast corrections that depend on the characteristics of the picture to be corrected. For low contrast images, where a strong correction is needed, α is larger than 1, for example it may range between 2 and 3, while for well contrasted images, a should be about 1, which does not introduce any correction.
According to the preferred embodiment of this invention, α is calculated automatically as a function of the expected mean luminance of the corrected image.
The function E[.] is the operator for calculating the mean luminance of an image, and equation (5) implies
If the output image should have a mean luminance intensity, in other words, if the mean luminance of the output image should be M, then
With 0≦BFmask(.,.)≦M, it is possible to obtain the following two estimated values for α:
wherein Ī is the estimated value or mean value of the intensity of the input image.
If Ī<M, then the input image is substantially a dark image. Therefore, the mask has more values towards to M, because this value is associated with the minimum luminance intensity of the image (image completely dark), and thus equation (12) may be used for estimating α. Otherwise, if Ī>M, that is, the image to be corrected is a bright image, a may be estimated with equation (13).
The parameter α, as given by equations (12) and (13), may be also used for deciding whether contrast enhancement processing should be carried out on the original image or not. That is, if α is close to one (for example α<1,2), it may be decided that the original image does not need to be processed.
To better understand the effect of the variations of a on the corrected image, the picture to be corrected in
The value of α may be determined in many different ways. For example, the value M in equation (11) is the median value of the luminance intensity of a n bit image. Of course, if a different mean luminance intensity is desired, the value M may be substituted by a larger or a smaller value.
Of course different choices could be used to fix the alpha value, in particular, it would often be convenient to use multiple alpha values. For example, one could decide to use one alpha value, say ALPHA1 for pixels having a value below a given threshold T and one alpha value, say ALPHA2, for pixels having a value above the given threshold T. The values of such alpha could be computed using the same criteria described in (12), (13) and using the mean of the two sub-images.
It is also possible to choose a narrower or a larger range, but in the former case the method of the invention would be carried out also on images with a reasonably fair definition, thus substantially resulting in a time loss, while in the latter case there could be images that could be sensibly improved if corrected.
Once the parameter α for the image to be processed has been chosen and once the local correction mask has been calculated, according to the method of the invention the contrast of the image is locally corrected according to equation (5), thus obtaining a first corrected image. In order to improve further the quality of the corrected image, according to the preferred embodiment, further corrections of contrast and of saturation may be carried out.
From a deeper analysis of the intensity histogram before and after the local correction proposed, it emerges that, despite a better occupation of the gray levels, the overall contrast enhancement is good but not completely satisfying. In fact, the new histogram is more spread than the original (that means that the contrast has been enhanced), it is shifted around the median values of the range but it is somewhat confined around it.
To better understand the significance of these modifications, let us refer to the input image depicted in
The corrected picture of
From thorough studies carried out by the inventors, it resulted that any algorithm that corrects images, detects and corrects underexposed or overexposed regions by changing their pixels values, generates a final image where all the pixels values occupy the central portion of the histogram. Moreover, especially for low quality images with compression artifacts, the noise in the darkest zones is enhanced. This effect is substantially intrinsic also in the corrections carried out with equation (5).
To contrast this undesirable loss of image quality, further steps may be introduced in any contrast enhancement process, comprising in a stretching and clipping procedure. This procedure, which is well known in literature and is used sophisticated software for enhancing definition of digital images, is determined by histogram inspection and comprises detecting opportune bins of the histogram from which identifying elements (clipping) to be corrected, such to be moved toward the extreme positions of the histogram (stretching). To summarize, the clipping and stretching procedure introduces new bins and/or increases the number of bins located at the extreme positions of the histogram.
The main characteristic of these further steps is that they are image dependent. That is, the stretching and clipping depend on the properties of the image histogram and are not fixed a priori. To better understand how these steps work, let us consider the image of
By applying equation (5) to both images, these two dark regions are made brighter, as shown in
For
To determine the strength of the stretching and thus the number of histogram entries (or histogram bins) to be clipped, it is considered how the darker regions occupy the intensity histogram before and after the correction carried out according to equation (5).
Tests carried out by the inventors consider pixels that belong to a dark zone, such as pixels of a dark suit or a dark object, as occupying a narrow and peaked group of bins of the intensity histogram. These pixels are expected to be present almost unchanged in the final corrected image.
Pixels of an underexposed background cause relatively larger (more spread) histogram peaks, and after having corrected the image, they would be present on an even wider region of the luminance histogram.
To evaluate how these dark pixels are distributed, the algorithm proceeds as follows:
b
str
=b_outputX%−b_inputX%;
To minimize the change of the color saturation between the input and the final images, especially in case of processing where only the luminance component is considered and modified, and thus in both the above described processes (contrast correction, stretching and clipping) the following formulation is applied to the RGB channels to preserve initial chrominance information, as suggested by Sakaue et al. [3]:
wherein R, G, B, Y are the red, green blue and luminance components of the corrected image, respectively, and R′, G′, B′ Y′ are the corresponding components of the final image.
a depicts an image corresponding to that depicted in
The final output images corrected according to the preferred embodiment are very satisfactory because contours of depicted persons and objects are well defined, and despite the original images may be rather dark, it is possible to identify all objects and all details of the images without noticing artifacts.
In