Abstract:
A method to enhance the contrast of a set of pixels each pixels being characterized by a set of color attributes comprising the steps of: determining a first property of the set of pixels; determining a second property of the set of pixels; determining, for each pixel of the set of pixels, a first property of said pixel; and modifying the color attributes of each pixel of the set of pixels as a function of the first and second property of the set of pixels and the first property of said pixel.

Description:
RELATED APPLICATIONS 
       [0001]    This application claims the benefit of U.S. Provisional Application No. 62/052,826 filed on Sep. 19, 2014, which is hereby incorporated herein by reference in its entirety. 
       RELATED APPLICATIONS 
       [0002]    The present disclosures relates generally to image processing, and particularly to methods and systems for enhancing image contrast by modifying pixel color attributes. 
     
    
     BACKGROUND OF THE INVENTION 
       [0003]    In medical imaging the diagnosis is usually made by radiologists. When the images are available in computer readable form (digitized), the analysis of the images may be performed while they are displayed on a video monitor. Scientists in the medical diagnostic imaging field are continuously working to improve the quality of the images, acquired by the various modalities in the field. One of the well-known methods for improving the detectability of lesions of a displayed organ is by “windowing”. 
         [0004]    Windowing describes the process of displaying the detected data by extending certain detected data ranges to fill the entire intensity range of the displayed image. For example, there are only a limited number of gray levels which may be distinguished, this being due to inherent limitations of the CRT and the human eye. Therefore, it is very important to utilize the available gray levels in the regions of data values which carry the most useful information. To illustrate, assume that a black and white system has the capability of displaying 256 gray levels. If the acquisition of data occurring during an examination of a subject results in only 86 gray levels being used that are clustered away from the lowest and the highest levels; then, only about one-third of the system&#39;s contrast display capability would be used. 
         [0005]    Windowing is presently accomplished by using a table-look-up or look-up table(s). When displaying an image, the data is stored in a digital memory, and is read out repeatedly to refresh the video display. For that purpose special circuits are used to control the read out sequence, to synchronize the raster monitor timing, to convert the digital data into analog data, etc. These circuits are well known to those skilled in the art. 
         [0006]    To perform the “windowing” function using table look up techniques, a translation table is stored in a memory within the electronic circuitry responsible for the display refresh. The image data, on a pixel-by-pixel basis is used as an address and applied to the memory. The corresponding gray level stored in the memory is readout and used to control the intensity of the displayed pixel. The LUT usually has two parameters: a slope and a threshold that are determined by an (human) operator. Those parameters can be adjusted using either knobs or a software user interface until the image enhancement is satisfactory. 
         [0007]    The problem with windowing is that it introduces visual artefacts like e.g. the distribution of shades is not maintained throughout the image for which the contrast is enhanced. 
         [0008]    There is still a need for improvements. 
       SUMMARY 
       [0009]    The present disclosure provides a method for enhancing the contrast of an image while maintaining more accurate color properties of the image. In a first aspect of the disclosure, a method to enhance the contrast of a set of pixels comprises the steps of
       Determining a first property of the set of pixels;   Determining a second property of the set of pixels;   Determining, for each pixel of the set of pixels the first property of said pixel;   Modifying the color attributes of each pixel of the set of pixels in function of the first and second property of the set of pixels and the first property of said pixel.       
 
         [0014]    The disclosed method has the benefit that taking properties of the set of pixels and at least one property of a pixel into account to modify the attributes of said pixel will enhance the contrast with less or no visual artefacts. 
         [0015]    In a further aspect of the disclosure, the color attributes are color coordinates. It is an advantage of this aspect of the disclosure that color shades will be preserved when contrast is enhanced. 
         [0016]    In a further aspect of the disclosure, the color coordinates are red, green and blue color components. It is an advantage of that aspect of the disclosure that operations on the color attributes can be done in an Euclidian, three dimensional space further simplifying the operations of the pixel attributes. 
         [0017]    In another aspect of the disclosure, the first property of the set of pixels is the distance between the origin of the color coordinate system and the pixel that is closest from the origin of the color coordinate system among all the pixels of the set of pixels. 
         [0018]    In a further aspect of the disclosure, the distance between a pixel and the origin of coordinates is evaluated by the coordinate with the highest value among the color coordinates characterizing that pixel. In other words, the first property of the set of pixels is the minimum value (Min) in the set of the highest color coordinate (max(r, g, b)) for all the pixels in the set of pixels. It is an advantage of that aspect of the invention that it simplifies the determination of the first property of the set of pixels. It may be important to simplify the determination of the parameters of the transformation to be applied to the pixels of the set of pixels in order to reduce the processing power required to enhance the contrast of a set of pixels. 
         [0019]    In another aspect of the disclosure, the second property of the set of pixels is the distance between the origin of the color coordinate system and the pixel that is farthest from the origin of the color coordinate system among all the pixels of the set of pixels 
         [0020]    In a further aspect of the disclosure, the second property of the set of is the maximum value (Max) in the set of the highest color coordinate (max(r, g, b) for all the pixels in the set of pixels. 
         [0021]    In another aspect of the disclosure, the first property of the pixel is the highest value (max(r, g, b)) among the color coordinates characterizing that pixel. 
         [0022]    In a further aspect of the disclosure, the set of pixels is a subset of a larger set of pixels or image. It is an advantage of that aspect of the invention that it allows to enhance the contrast of an area of interest within the image without visual creating artefacts. 
         [0023]    The present disclosure provides a method to enhance the contrast of a set of pixels each pixels being characterized by a set of color attributes comprising the steps of: determining a first property of the set of pixels; determining a second property of the set of pixels; determining, for each pixel of the set of pixels, a first property of said pixel; and modifying the color attributes of each pixel of the set of pixels as a function of the first and second property of the set of pixels and the first property of said pixel 
         [0024]    Alternatively or additionally, the color attributes are color coordinates. 
         [0025]    Alternatively or additionally, the color coordinates are red, green and blue color components. 
         [0026]    Alternatively or additionally, the first property of the set of pixels is the distance between the origin of the color coordinate system and the pixel that is closest from the origin of the color coordinate system among all the pixels of the set of pixels. 
         [0027]    Alternatively or additionally, where the first property of the set of pixels is the minimum value (Min) in the set of the highest color coordinate (max(r, g, b)) for all the pixels in the set of pixels. 
         [0028]    Alternatively or additionally, where the second property of the set of pixels is the distance between the origin of the color coordinate system and the pixel that is farthest from the origin of the color coordinate system among all the pixels of the set of pixels 
         [0029]    Alternatively or additionally, the second property of the set of pixels is the maximum value (Max) in the set of the highest color coordinate (max(r, g, b) for all the pixels in the set of pixels. 
         [0030]    Alternatively or additionally, the first property of the said pixel is the value (max(r, g, b)) of the color coordinate that is highest 
         [0031]    Alternatively or additionally, the set of pixels is a subset of a larger set of pixels. 
         [0032]    Alternatively or additionally, the set of pixels is part of an image. 
         [0033]    Alternatively or additionally, the color attributes of each pixel of the set of pixels are modified using the following equation 
         [0000]        CA′=CA ( L−P 1)/(( L ( P 2 −P 1)) 
         [0000]    where CA′ represents the modified color attributes of each pixel, CA represents the color attributes of each pixel, L represents the first property of said pixel, P1 represents the first property of the set of pixels, P2 represents the second property of the set of pixels. 
         [0034]    Alternatively or additionally, the contrast of the set of pixels is enhanced by expanding the range of brightness of the set of pixels to be between 0 and 1. 
         [0035]    Alternatively or additionally, a brightness of a particular pixel is equal to the highest color coordinate value for the particular pixel. 
         [0036]    Alternatively or additionally, the pixel of the set of pixels having the minimum brightness is set to a brightness of 0 and the pixel of the set of pixels having the maximum brightness is set to a brightness of 1. 
         [0037]    Alternatively or additionally, the contrast of the set of pixels is enhanced by expanding the range of brightness of the set of pixels to be between a lower limit (LL) and an upper limit (UL). 
         [0038]    Alternatively or additionally, the LL is greater than 0 and the UL is less than 1. 
         [0039]    Alternatively or additionally, the color attributes of each pixel of the set of pixels are modified using the following equation 
         [0000]        CA ′=( CA/L )(( UL−LL )( L−P 1)/( P 2 −P 1)+ LL )
 
         [0000]    where CA′ represents the modified color attributes of each pixel, CA represents the color attributes of each pixel, L represents the first property of said pixel, P1 represents the first property of the set of pixels, and P2 represents the second property of the set of pixels. 
     
    
     
       BRIEF DESCRIPTION OF THE FIGURES 
         [0040]      FIG. 1  shows the color cube, a vector &lt;r, g, b&gt; and the corresponding vector &lt;R, G, B&gt;. 
           [0041]      FIG. 2  shows a set of (r, g, b) triplets and the associated Minimum Cube and Maximum Cube. 
           [0042]      FIG. 3  shows an example of vectors N, P, R and RGB associated with a vector &lt;r, g, b&gt;. 
           [0043]      FIG. 4  shows a 2D Representation of a method for expanding the contrast to a limited range. 
           [0044]      FIG. 5  shows a flow chart for a method according to the invention to enhance the contrast of a set of pixels. 
           [0045]      FIG. 6  shows a more generalized flow chart for a method according to the invention to enhance the contrast of a set of pixels. 
       
    
    
     DETAILED DESCRIPTION 
       [0046]    Definitions, notations and conventions. 
         [0047]    Multiplication of numbers will be represented by “.”, “x”, “*” or simply by juxtaposing the two operands. For instance “a times b” or “a multiplied by b” can be represented by a.b; axb; a*b or ab. 
         [0048]    An Area of Interest (abbreviated as AOI) is a subset of an image or picture. As such an AOI is a subset of a set of pixels or picture elements composing an image or picture. 
         [0049]    The example vectors in this disclosure are in a 3 dimensional space, but the invention may apply to space of N dimensions where N can be different from 3. 
         [0050]    Vectors will be represented by their components between brackets or by a capitalized letter in bold. For instance &lt;r, g, b&gt; represents a vector with components r, g and b; R represents a vector of component Rr, Rg and Rb where Rr is the component of R on the red axis, Rg is the component of R on the green axis and Rb is the component of R on the blue axis. In the previous example, R can also be represented by &lt;Rr, Rg, Rb&gt;. 
         [0051]    Scalar multiplication (of a vector by a number) will be represented by “.” or simply by juxtaposing the number and the vector. For instance “a times the vector V” (where e.g. V=&lt;V1, V2, V3&gt; can be represented by a.V or aV or a&lt;V1, V2, V3&gt; or &lt;aV1, aV2, aV3&gt;. 
         [0052]    The length of a vector V=&lt;Vr, Vg, Vb&gt; will be noted ∥V∥ or ∥&lt;Vr, Vg, Vb&gt;∥. 
         [0053]    The point p with coordinates (r, g, b) corresponds to a vector &lt;r, g, b&gt; defined by the origin (0, 0, 0) of the cube and the point (r, g, b). 
         [0054]    The embodiments of the invention will treat the component values of a color e.g. red, green and blue as ordinary Cartesian coordinates in a Euclidian space. 
         [0055]    For the RGB model, this is represented by a cube using non-negative values within a 0-1 range, assigning “black” to the origin at the vertex (0, 0, 0), and with increasing intensity values running along the three axes up to “white” at the vertex (1, 1, 1), diagonally opposite black. We will refer to the cubes with vertices at (0, 0, 0); (1, 0, 0); (0, 1, 0); (1, 1, 0); (0, 0, 1); (1, 0, 1); (0, 1, 1) and (1, 1, 1) as the Color Cube. 
         [0056]    A display is usually not able to render black (absence of light) or white. Whenever reference will be made to a black pixel, what is meant is that the pixel is characterized by the color coordinates (0, 0, 0). 
         [0057]    Whenever reference will be made to a white pixel, what is meant is that the pixel is characterized by the color coordinates (1, 1, 1). 
         [0058]    An RGB triplet (r, g, b) represents the three-dimensional coordinate of the point of the given color within the cube or its faces or along its edges. 
         [0059]    Triplets that are collinear, e.g. (r, g, b) and (α.r, α.r, α.r), are shades of the same color. 
         [0060]    In particular, if L is the luminance, any point (r, g, b) inside the color cube can be related to a point (R, G, B) on the surface of the color cube as (r, g, b)=(LR, LG, LB) where L is a real number in the interval [0,1]. 
         [0061]    In a digital display, colors are encoded as binary digits. If for instance the color components are encoded with 8 bits, the encoded number varies from 0 for the binary sequence “00000000” to 255 for the binary sequence “11111111”, In the description of embodiments, all numbers have been normalized. In other words, if the colors are encoded with N bits, the components &lt;r, g, b&gt; with r, g and b in the interval [0, 1] are obtained by dividing the numbers encoded as N bit digits by 2 N −1. 
         [0062]    The invention will make use of the following results: by subtracting from a vector &lt;r, g, b&gt; a fraction of the same vector &lt;r, g, b&gt; a color can be shifted toward black and still remain collinear to the vector &lt;r, g, b&gt;. By multiplying the components of a vector &lt;r, g, b&gt; by a value greater than 1.0, the color (r, g, b) can be brightened and still remain collinear to the ray. 
         [0063]    The brightness of a color (r, g, b) can be determined as follows. 
         [0064]    As shown on  FIG. 1 , the straight line determined by the points (0, 0, 0) and (r, g, b) intersects the cube at a point (R, G, B). The point (R, G, B) being on the surface of the color cube, at least one of the components of (R, G, B) is equal to 1. In the example of  FIG. 1 , it is the green component G that is equal to 1. 
         [0065]    To project (r, g, b) on the cube, we just have to divide the components of (r, g, b) by max (r, g, b) the maximum value of the (r, g, b) triplet. 
         [0066]    For instance, for the triplet (0.1, 0.2, 0.3); max (0.1, 0.2, 0.3) is equal to 0.3. To project the triplet (0.1, 0.2, 0.3) on the surface of the cube; we divide the components of the triplet by 0.3 (which is equivalent to say that one multiplies the components of the triplet by 1/0.3). 
         [0067]    In vector notations, one has thus: 
         [0000]      &lt; R, G, B&gt;=&lt;r /max( r, g, b ),  g /max( r, g, b ),  b /max( r, g, b )&gt;=1/max( r, g, b )*&lt; r, g, b&gt;   (1)
 
         [0068]    By definition, we also have: 
         [0000]      &lt; r, g, b&gt;=L&lt;R, G, B &gt;where L is the brightness, ranging from 0.0 to 1.0.   (2)
 
         [0069]    By solving equations (1) and (2) for L, we have L=max(r, g, b). 
         [0070]    AOI (Area Of Interest) is a set of pixels for which a contrast adjustment is to be performed. The Maximum Cube is the smallest cube that contains all the pixels of the AOI. In other words, the Maximum Cube is the smallest cube that contains all the (r, g, b) triplets associated with pixels of the AOI. At least one of the pixels of the AOI has an (r, g, b) triplet on the surface of the Maximum Cube. 
         [0071]    For instance; as illustrated on  FIG. 2 , if the AOI is the set {(0.1, 0.2, 0.3); (0, 0, 0.5); (0.6, 0.2, 0.25); (0.4, 0.3, 0.7)}, then the maximum cube with summits at (0, 0, 0); (0.7, 0, 0); (0, 0.7, 0); (0.7, 0.7, 0); (0, 0, 0.7); (0.7, 0, 0.7); (0, 0.7, 0.7) and (0.7, 0.7, 0.7). 
         [0072]    The Minimum Cube is the largest cube that does not contain any of the pixels of the AOI. In other words, the Minimum Cube is the largest cube that excludes all of the (r, g, b) triplets associated with pixels of the AOI. At least one of the pixels of the AOI has an (r, g, b) triplet on the surface of the Minimum Cube. 
         [0073]    For instance, as illustrated on  FIG. 2 , the Minimum Cube is the cube with summits at (0, 0, 0); (0.1, 0, 0); (0, 0.1, 0); (0.1, 0.1, 0); (0, 0, 0.1); (0.1, 0, 0.1); (0, 0.1, 0.1) and (0.1, 0.1, 0.1). 
         [0074]    In a more general case the Maximum Cube is the cube with summits at (0, 0, 0); (Max, 0, 0); (0, Max, 0); (Max, Max, 0); (0, 0, Max); (Max, 0, Max); (0, Max, Max) and (Max, Max, Max) and the Minimum Cube is the cube with summits at (0, 0, 0); (Min, 0, 0); (0, Min, 0); (Min, Min, 0); (0, 0, Min); (Min, 0, Min); (0, Min, Min) and (Min, Min, Min) where Max is the maximum value reached by max(r, g, b) for all pixels of the AOI and Min is the minimum value reached by max(r, g, b) for all pixels of the AOI. 
         [0075]    Let us define the vectors N, P, and R. N, P, and R may be different for each triplet (r, g, b) of the AOI. 
         [0076]    N is the vector that is collinear with &lt;r, g, b&gt; and that intersects the surface of the Minimum cube. 
         [0077]    P is the vector difference of &lt;r, g, b&gt; and N: P=&lt;r, g, b&gt;−N. P is the vector that will be scaled to yield the “contrast enhanced” triplet for the initial triplet (r, g, b). 
         [0078]    R is the vector collinear with &lt;r, g, b&gt; and N and such that the sum of R and N intersects the Maximum Cube. 
         [0079]    &lt;R, G, B&gt; is the vector that is collinear with &lt;r, g, b&gt; and that intersects the Color Cube. 
         [0080]    A representation of N, P, R and &lt;R, G, B&gt; is given on  FIG. 3  for a triplet (0, g, b) with a given Maximum Cube and a given Minimum Cube. 
         [0081]    The principle of the contrast adjustment is, for each triplet (r, g, b) of the AO 1 :
       Subtract N from &lt;r, g, b&gt;   Scale the result P as described below.       
 
         [0084]    In order to scale P, we are solving for vector C=&lt;r′, g′, b′&gt;, such that the ratio of the length of C and the length of &lt;R, G, B&gt;is the same as the ratio of the length of P and the length of R: 
         [0000]      ∥ C∥/∥&lt;R, G, B&gt;∥=∥P∥/∥R∥   (3)
 
       Or 
       [0085]      ∥ R∥/∥&lt;R, G, B&gt;∥=∥P∥/∥C∥= 1 /S  where S is a real number (or a rational number if one takes into account the limitations of the digital processors used in the display).   ( 4 )
 
         [0086]    By (4) we have 
         [0000]      ∥ C∥=S∥P∥   (5)
 
       And 
       [0087]      ∥&lt; R, G, B&gt;∥=S∥R∥   (6)
 
         [0088]    The vectors being collinear, we can also write: 
         [0000]      C=S P   (7)
 
         [0000]      &lt;R, G, B&gt;=S R   (8)
 
         [0089]    Based on  FIG. 3   
         [0000]      &lt; R, G, B&gt;=[ 1/(Max−Min)].  R    (9)
 
         [0090]    By (8) and (9) we have: 
         [0000]        S= 1/(Max−Min) and by (7) we have  C=[ 1/(Max−Min)].  P.    (10)
 
         [0091]    By expressing P as a function of &lt;r, g, b&gt;, we will have the expression of &lt;r′, g′, b′&gt; in function of &lt;r, g, b&gt; alone. 
         [0092]    N being collinear with &lt;r, g, b&gt;, we may write: 
         [0000]        N=k&lt;r, g, b&gt;   (11)
 
         [0093]    We also have: 
         [0000]        N =Min/ L&lt;r, g, b&gt;   (12)
 
         [0094]    Injecting this result for N in the definition of P, we have: 
         [0000]        P=&lt;r, g, b &gt;−Min/ L&lt;r, g, b&gt;.    (13)
 
         [0095]    Which gives us: 
         [0000]        P=&lt;r, g, b &gt;( L −Min)/ L    (14)
 
         [0096]    Combining expressions (7), (10) and (14), we find: 
         [0000]      &lt; r′, g′, b′&gt;=&lt;r, g, b &gt;( L −Min)/[ L .(Max−Min)].   (15)
 
         [0097]    Therefore, enhancing the contrast of an Area of Interest is done according to the invention as follows:
       (a) Determine the Minimum Cube or in other words determining the minimum of max (r. g. b) for all the triplets (r, g, b) associated with the pixels in the Area of Interest.   (b) Determine the Maximum Cube or in other words determining the maximum of max (r. g. b) for all the triplets (r, g, b) associated with the pixels in the Area of Interest.   (c) For each pixel and the associated triplet (r, g, b), determine max (r, g, b) which is L for that pixel.   (d) Transform the triplet (r, g, b) of the pixel into (r′, g′, b′) where:       
 
         [0000]        r′=r .( L −Min)/[ L .(Max−Min)]  (d1)
 
         [0000]        g′=g .( L −Min)/[L.(Max−Min)]  (d2)
 
         [0000]        b′=b .( L −Min)/[ L .(Max−Min)]  (d3)
 
         [0102]    In another embodiment, the above formula is revised when it is not desired to expand the contrast to range from black to full brightness. For example, it may be desirable to limit the minimal brightness to something greater than 0, or to limit the brightness from yielding fully saturated colors. In this case, the formula will start back at the point where the full resulting range of brightness was assumed at 0.0 to 1.0. The expanded range will be identified as Y min  and Y max . 
         [0103]    For the scaling we are solving for a new point C=&lt;r&#39;,g′,b′&gt;, such that the length of C over the length of &lt;R,G,B&gt;is the same as the proportion of the length of P to the length of R. 
         [0104]    Based on the new range of brightness (Y max −Y min ) we can write (8) as follows: 
         [0000]      &lt; R,G,B &gt;( Y   max   −Y   min )= SR    (16)
 
         [0105]    Based on the new minimum brightness Ymin we also have: 
         [0000]      &lt; r′,g′,b′&gt;=SP+&lt;R,G,B &gt;(Y min )   (17)
 
         [0106]    We also have: 
         [0000]      &lt; R,G,B &gt;/(1.0−0.0)=R/(Max−Min)   (18)
 
         [0000]        S =( Y   max   −Y   min )/(Max−Min)   (19)
 
         [0000]        P=&lt;r,g,b &gt;(( L −Min)/L)  (20)
 
         [0000]      &lt; r′, g′,b ′&gt;=(( Y   max   −Y   max ) (Max−Min) &lt; r,g,b &gt;( L −Min)/ L+&lt;R,G,B &gt;( Y   min )   (21)
 
         [0107]    Finally, we find that 
         [0000]      &lt; r′,g′,b ′&gt;=(&lt; r,g,b&gt;/L ) (( Y   max   −Y   min ) ( L −Min)/(Max−Min)+ Y   min )   (22)
 
         [0108]      FIG. 5  gives an overview of the method with a particular choice for the first and second properties of the set of pixels and the first property of the pixel. 
         [0109]      FIG. 6  gives an overview of the method in a more general case i.e. without specifying the properties or parameters characterizing the set of pixels and the property or parameter of the pixel whose attributes are modified. 
         [0110]    While the embodiments were described for a display using three primary colors, the invention can apply to displays using different sets of colors (e.g., RGBW (Red, Green, Blue, White)) or different color spaces (e.g., YUV, HSL, HSV, CMYK, or any other suitable color space).