The foregoing summary of the invention, as well as the following detailed description of illustrative embodiments, is better understood when read in conjunction with the accompanying drawings, which are included by way of example, and not by way of limitation with regard to the claimed invention.
In the following description of various illustrative embodiments, reference is made to the accompanying drawings, which form a part hereof, and in which is shown, by way of illustration, various embodiments in which the invention may be practiced. It is to be understood that other embodiments may be utilized and structural and functional modifications may be made without departing from the scope of the present invention.
Aspects of the invention may be implemented with digital cameras and devices that include digital cameras. Devices that include digital cameras include mobile terminals and portable computer devices.
Computer executable instructions and data used by processor 128 and other components within mobile terminal 10 may be stored in computer readable memory 134. Memory 134 may be implemented with any combination of read only memory modules or random access memory modules, optionally including both volatile and nonvolatile memory and optionally being detachable. Software 140 may be stored within memory 134 and/or storage to provide instructions to processor 128 for enabling mobile terminal 10 to perform various functions. Alternatively, some or all of mobile terminal 10 computer executable instructions may be embodied in hardware or firmware (not shown).
Mobile terminal 10 may be configured to send and receive transmissions based on the Bluetooth standard, through a specific Bluetooth module 141. Additionally, mobile terminal 10 may also be configured to receive, decode and process transmissions through an FM/AM radio receiver 142, a wireless local area network (WLAN) transceiver 143, and a telecommunications transceiver 144. In one aspect of the invention, mobile terminal 10 may receive radio data stream (RDS) messages. Mobile terminal 10 may be equipped with other receivers/transceivers, e.g., one or more of a Digital Audio Broadcasting (DAB) receiver, a Digital Radio Mondiale (DRM) receiver, a Forward Link Only (FLO) receiver, a Digital Multimedia Broadcasting (DMB) receiver, etc. Hardware may be combined to provide a single receiver that receives and interprets multiple formats and transmission standards, as desired. That is, each receiver in a mobile terminal device may share parts or subassemblies with one or more other receivers in the mobile terminal device, or each receiver may be an independent subassembly.
where i identifies a pixel row,j identifies a pixel column. The intensity of individual red, green and blue pixels are identified by r(i,j), g(i,j) and b(i,j) respectively.
Next, in step 204 a histogram of the intensity image is created. The type of histogram created in step 204 may be a conventional histogram used in connection with the processing of typical digital images.
In one embodiment, the histogram created in step 204 may be defined as follows:
h(m)=nr of pixels in the range [m−0.5;m+0.5] with m=0, . . . , 255 (2)
In step 206 a transformation function is computed to adjust the intensity of a low light portion of the digital image. The computation performed in step 206 may use the histogram created in step 204.
In this manner the maximum number of pixels that are in the low light portion of the image and the corresponding number of pixels are found. The position M in the histogram corresponds to the value MAX. The low light portion of the histogram is analyzed so that the intensity and contrast of dark regions of the image can be adjusted.
In step 404, the width of the low light portion of the histogram is estimated. Step 404 may be used to determine the portion of the low light region containing the most pixels. In one embodiment, a threshold value, such as 0.3, is selected and the range of the histogram [Imin,Imax] is computed as:
Imin=M−max{|M−R1|,|M−R2|}and Imax=M+max{|M−R1|,|M−R2|} (6)
Input images that have a large number of dark pixels that have almost the same intensity level will result in a small range (Imin and Imax will be close to each other). The amount of processing that ultimately takes place is inversely related to the range. Input images having large ranges already have a large dynamic range and require less processing. In some embodiments the maximum and the minimum strength of the processing are limited in order to limit over-processing or smoothing the input image.
Finally, in step 406 parameters of the transformation function are estimated and the transformation function is fit to the histogram. The transformation function may be fitted to the range [Imin,Imax] determined above. In one embodiment, the transformation function f(i,j) is defined as
A scaling factor of 255 is used to normalize the intensity pixel values in the range [−1,1].
The value K in equation can result in saturation at the zero level or the 255 level if not chosen properly. A very large value of K for a transformation function enhance the contrast of the pixels that have values close to M but the other pixels will be simply put to 0 or 255. That is all pixels not located close to M will be black or white. K may have a non-fixed value when there is a desire for high contrast while avoiding over saturation. A wide range [Imin,Imax] may result in a small K that prevents saturation of the other pixels and also decrease the strength of the processing. A narrow range [Imin,Imax] may result in a larger K in order to better increase the contrast and intensity. However in any case the pixels that are at the extreme value of the intensity (around 0 and around 255 intensity levels) should not be saturated.
In one embodiment, to compute the value of the parameter K we start from the following condition imposed on the transformation function f(i,j):
ƒ(Imax)=0.7*255 (8)
This value ensures a remaining dynamic range of 0.3*255 for pixels that are situated around 0 levels and also around 255 level. Solving equation (8) for K results in the following formula for adaptively selecting the value of this parameter:
The scaling factor 255 ensures that the pixels after applying the correction function are on the range [0,255]. In some situations the value of the parameter K, estimated by equation (9), can be too large or to small. In such situations its value should be bounded. An exemplary minimum value Kmin equals 3 and an exemplary maximum value K max ε[8,10]. The fixed value Kmin may be chosen such that the transformation function f(i,j) is linear inside the input range [−1,1]. The maximum value of K can be selected fixed or it can be a user defined parameter. Modifications to Kmax can increase or decrease the maximum strength of the processing.
Returning to
Correction may then be performed as follows:
The minimum and the maximum pixel values of the red color component may be restored as follows:
During the correction phase, some pixels from the high intensity part of the input image may be over processed. Over saturation can be corrected by using a weighted average, such as:
{circumflex over (r)}(i,j)=(1=a(i,j)){circumflex over (r)}(i,j)+a(i,j)r(i,j) (13)
With a(i,j) being a weighting function computed as follows:
The processing described above with respect to red may then be repeated for other color components, such as green and blue.
Finally, in step 210 the contrast of a portion of the digital image other than the low light portion of the digital image is adjusted. In one embodiment, step 210 includes modifying the level of the local contrast, but not the intensity. The transformation function f(i,j) may be used to indicate which pixels were processed in the previous steps.
The contrast of a portion of the digital image other than the low light portion of the digital image may be adjusted by first computing a gain map g(i,j) according to:
In one implementation, a maximum value of the gain map is 2 and it is obtained for the pixels that were not processed at previous steps. Of course a maximum value larger than 2 can be used in order to have a stronger contrast processing. In an alternative embodiment, the maximum value of the gain can also be selected as a user defined parameter which can be used to fine tune the processing quality.
Vertical and horizontal sums and differences may be computed as follows:
d1={circumflex over (r)}(i,j)−{circumflex over (r)}(i+1,j)
s1={circumflex over (r)}(i,j)+{circumflex over (r)}(i+1,j)
d2={circumflex over (r)}(i,j)−{circumflex over (r)}(i,j+1)
s1={circumflex over (r)}(i,j)+{circumflex over (r)}(i,j+1) (15)
Next, the portion of the digital image other than the low light portion of the digital image may be adjusted by multiplication of the differences with the gain map as follows:
{circumflex over (d)}1(i,j)=g(i,j)d1(i,j)
{circumflex over (d)}2(i,j)=g(i,j)d2)(i,j) (16)
The image may then be reconstructed according to:
Finally, image clipping may be performed according to:
The remaining color components may be processed using similar procedures.
While illustrative systems and methods as described herein embodying various aspects of the present invention are shown, it will be understood by those skilled in the art, that the invention is not limited to these embodiments. Modifications may be made by those skilled in the art, particularly in light of the foregoing teachings. For example, each of the elements of the embodiments may be utilized alone or in combination or subcombination with elements of the other embodiments. It will also be appreciated and understood that modifications may be made without departing from the true spirit and scope of the present invention. The description is thus to be regarded as illustrative instead of restrictive on the present invention.