IP Library Granted Patent US 7,570,808
Granted Patent B2
US 7,570,808 · App. 10/641,972 · Granted Aug 4, 2009

Better picture for inexpensive cameras

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,570,808
App. No.
10/641,972
Granted
Aug 4, 2009
Kind
B2
Abstract

A method for enhancing an image includes applying an auto-level transformation to an original image to form a first image, applying an auto-contrast transformation to the original image to form a second image, and applying an auto-brightness transformation to the original image to form a third image. The method further includes applying a color cast correction to the first, the second, and the third images to generate a first group of images, applying a gamma correction to the first group of images to generate a second group of images, applying a sharpening correction to the second group of images to generate a third group of images, and presenting the third group of images to a user to select a final result.

Claims (686)

1. A method for enhancing an image, comprising using a processor to perform:

applying an auto-level transformation to an original image to form a first image;

applying an auto-contrast transformation to the original image to form a second image;

applying an auto-brightness transformation to the original image to form a third image;

applying a color cast correction to the first, the second, and the third images to generate a first plurality of images, said applying a color cast correction comprising:

creating a histogram Hist[Cr,Cb] of an image, wherein the histogram Hist[Cr,Cb] is defined as a count of points in the image with chromatic values (Cr,Cb); and

determining a nearest peak to an origin (0,0), wherein a peak is located at chromatic values (cr,cb) if (1) Hist(cr,cb)>Hist[cr−1,cb], (2) Hist(cr,cb)>Hist[cr+1,cb], (3) Hist(cr,cb)>Hist[cr,cb−1], and (4) Hist(cr,cb)>Hist[cr,cb+1];

applying a gamma correction to the first plurality of images to generate a second plurality of images;

applying a sharpening correction to the second plurality of images to generate a third plurality of images; and

presenting the third plurality of images to a user to select a final result.

2. A method for applying a color cast correction to an image, comprising using a processor to perform:

creating a histogram Hist[Cr,Cb] of the image, wherein the histogram Hist[Cr,Cb] is defined as a count of points in the image with chromatic values (Cr,Cb);

determining a nearest peak to an origin (0,0), wherein a peak is located at chromatic values (cr,cb) if (1) Hist(cr,cb)>Hist[cr−1,cb], (2) Hist(cr,cb)>Hist[cr+1,cb], (3) Hist(cr,cb)>Hist[cr,cb−1], and (4) Hist(cr,cb)>Hist[cr,cb+1];

setting new chromatic values of points in the image based on chromatic values of the nearest peak and original chromatic values of the points in the image; and

displaying the image to a user.

3. The method of claim 2 , wherein said setting new chromatic values of points in the image comprises:

setting color casts (Δcr,Δcb) equal to (−cr,−cb) of the nearest peak; and

setting the new chromatic values of the points in the image as follows:

Cr new =Cr old +Δcr,

Cb new =Cb old +Δcb. and

Y new=Y old ,

wherein Cr new is a new value of a channel Cr of a point in the image, Cr old is an original value of the channel Cr of the point, Δcr is a color cast of the channel Cr in the image, Cb new is a new value of a channel Cb of the point, Cb old is an original value of the channel Cb of the point, Δcb is a color cast of the channel Cb in the image, Y new is a new value of a channel Y of the point, and Y old is an original value of the channel Y of the point.

4. The method of claim 1 , wherein for each of the first plurality of images, said applying a gamma correction comprises:

calculating a parameter α that maximizes entropy of an image after the gamma correction as follows:

1

x

256

h

(

x

)

α

(

x

256

)

α

-

1

,

wherein h(x) is a histogram of a channel Y of the image before the gamma correction, and x is a gray level of the channel Y;

calculating new Y channel values of points in the image using a following equation:

Y

new

=

255

(

Y

old

255

)

α

,

wherein Y new is a new value of the channel Y of a point in the image and Y old is an original value of the channel Y of the point.

5. The method of claim 1 , wherein for each of the second plurality of images, said sharpening correction comprises calculating new intensity values of an image as follows:

I

new

(

x

,

y

)

=

{

I

old

(

x

,

y

)

,

if

I

(

x

,

y

)

T

I

old

(

x

,

y

)

+

λ

2

I

(

x

,

y

)

,

if

I

(

x

,

y

)

>

T

,

I

(

x

,

y

)

=

I

x

2

(

x

,

y

)

+

I

y

2

(

x

,

y

)

,

I

x

(

x

,

y

)

=

I

(

x

+

1

,

y

)

-

I

(

x

,

y

)

,

I

y

(

x

,

y

)

=

I

(

x

,

y

+

1

)

-

I

(

x

,

y

)

,

and

2

I

(

x

,

y

)

=

I

(

x

,

y

)

-

1

8

i

=

-

1

1

j

=

-

1

1

I

(

x

+

i

,

y

+

j

)

,

wherein λ is a sharpness parameter, T is a threshold value that determines if there is a strong edge, I( ) is an intensity value at a point in the image, I new (x,y) is a new intensity value at a point (x,y) in the image, and I old (x,y) is an old intensity value at the point (x,y).

6. The method of claim 5 , wherein the sharpness parameter λ is equal to 0.1.

7. The method of claim 1 , wherein said auto-level transformation comprises calculating new channel values using a following formula:

g

new

(

C

)

=

255

(

g

(

C

)

-

min

(

C

)

)

max

(

C

)

-

min

(

C

)

,

wherein g new (C) is a new value of a channel C of a point in an image, g (C) is an original value of the channel C of the point, min (C) is a minimum value of the channel C in the image, and max (C) is a maximum value of the channel C in the image.

8. The method of claim 1 , wherein said auto-contrast transformation comprises calculating new channel values using a following formula:

g

new

(

C

)

=

255

(

g

(

C

)

-

min

)

max

-

min

,

wherein RGB values range [min (C) ,max (C) ], Cε{R,G,B}, min=MIN(min (R) ,min (G) ,min (B) ), max=MAX(max (R) ,max (G) ,max (B) ), g new (C) is a new value of a channel C of a point in an image, and g (C) is an original value of the channel C of the point.

9. The method of claim 1 , wherein said auto-brightness transformation comprises calculating new channel values using a following formula:

Y

new

=

255

(

Y

-

min

Y

)

max

Y

-

min

Y

,

Cr

new

=

Cr

,

Cb

new

=

Cb

,

wherein min Y is a minimum value of a channel Y, max Y is a maximum value of the channel Y, Y new is a new value of the channel Y of a point in an image, Y is an original value of the channel Y of the point, Cr new is a new value of a channel Cr of the point, Cr is an original value of the channel Cr of the point, Cb new is the a value of a channel Cb of the point, and Cb is an original value of the channel Cb of the point.

10. A method for enhancing an image, comprising using a processor to perform:

applying an auto-level transformation to an original image to form a first image;

applying an auto-contrast transformation to the original image to form a second image;

applying an auto-brightness transformation to the original image to form a third image;

applying a color cast correction to the first, the second, and the third images to generate a first plurality of images, wherein for each of the first, the second, and the third images, said applying a color cast correction comprises:

creating a histogram Hist[Cr,Cb] of an image, wherein Hist[Cr,Cb] is defined as the count of points in the image with chromatic values (Cr,Cb);

determining a nearest peak from an origin (0,0) for the image, wherein a peak is located at chromatic values (cr,cb) if (1) Hist(cr,cb)>Hist[cr−1,cb] , (2) Hist(cr,cb)>Hist[cr+1,cb], (3) Hist(cr,cb)>Hist[cr,cb−1], and (4) Hist(cr,cb)>Hist[cr,cb+1];

setting (Δcr,Δcb) equal to (−cr,−cb) of the nearest peak for the image, wherein:

Cr new =Cr old +Δcr,

Cb new =Cb old +Δcb, and

Y new =Y old ,

wherein Cr new is a new value of a channel Cr of a point in the image, Cr old is an original value of the channel Cr of the point, Δcr is a color cast of the channel Cr in the image, Cb new is a new value of a channel Cb of the point, Cb old is an original value of the channel Cb of the point, Δcb is a color cast of the channel Cb in the image, Y new is a new value of a channel Y of the point, and Y old is an original value of the channel Y of the point;

applying a gamma correction to the first plurality of images to generate a second plurality of images, wherein for each of the first plurality of images, said applying a gamma correction comprises:

calculating a parameter α that maximizes entropy of an image after correction as follows:

1

x

256

h

(

x

)

α

(

x

256

)

α

-

1

,

wherein h(x) is a histogram of the Y channel in the image before correction, and x is a gray level of the Y channel;

calculating new Y channel values of points in the image using a following equation:

Y

new

=

255

(

Y

old

255

)

α

,

wherein Y new is a new value of the channel Y of a point in the image and Y old is an original value of the channel Y of the point;

applying a sharpening correction to the second plurality of images to generate a third plurality of images, wherein for each of the second plurality of images, said applying a sharpening correction comprises calculating new intensity values for an image as follows:

I

new

(

x

,

y

)

=

{

I

old

(

x

,

y

)

,

if

I

(

x

,

y

)

T

I

old

(

x

,

y

)

+

λ

2

I

(

x

,

y

)

,

if

I

(

x

,

y

)

>

T

,

I

(

x

,

y

)

=

I

x

2

(

x

,

y

)

+

I

y

2

(

x

,

y

)

,

I

x

(

x

,

y

)

=

I

(

x

+

1

,

y

)

-

I

(

x

,

y

)

,

I

y

(

x

,

y

)

=

I

(

x

,

y

+

1

)

-

I

(

x

,

y

)

,

and

2

I

(

x

,

y

)

=

I

(

x

,

y

)

-

1

8

i

=

-

1

1

j

=

-

1

1

I

(

x

+

i

,

y

+

j

)

,

wherein λ is a sharpness parameter, T is a threshold value that determines if there is a strong edge, I( ) is an intensity value at a point in the image, I new (x,y) is a new intensity value at a point (x,y) in the image, and I old (x,y) is an old intensity value at the point (x,y);

presenting the third plurality of images to a user to select a final result.

11. A method for applying a gamma correction to an image comprising: using a processor to perform:

calculating a parameter α that maximizes entropy of the image after the gamma correction as follows:

1

x

256

h

(

x

)

α

(

x

256

)

α

-

1

,

wherein h(x) is a histogram of a channel Y of the image before the gamma correction, and x is a gray level of the channel Y;

calculating new Y channel values of points in the image using a following equation:

Y

new

=

255

(

Y

old

255

)

α

,

wherein Y new is a new value of the channel Y of a point in the image and Y old is an original value of the channel Y of the point;

saving the new Y channel values to the image; and displaying the image to a user.

Assignments (2)
RELEASE OF SECURITY INTEREST Recorded Nov 13, 2015
From: EAST WEST BANK
To: ARCSOFT, INC.; MULTIMEDIA IMAGE SOLUTION LIMITED; ARCSOFT (HANGZHOU) MULTIMEDIA TECHNOLOGY CO., LTD.; ARCSOFT (SHANGHAI) TECHNOLOGY CO., LTD.; ARCSOFT HANGZHOU CO., LTD.
Reel/Frame 037109/0027 →
SECURITY INTEREST Recorded Aug 14, 2014
From: ARCSOFT, INC.; ARCSOFT (SHANGHAI) TECHNOLOGY CO., LTD.; ARCSOFT (HANGZHOU) MULTIMEDIA TECHNOLOGY CO., LTD.; MULTIMEDIA IMAGE SOLUTION LIMITED; ARCSOFT HANGZHOU CO., LTD.
To: EAST WEST BANK
Reel/Frame 033535/0537 →