IP Library Granted Patent US 9,083,918
Granted Patent B2
US 9,083,918 · App. 13/476,842 · Granted Jul 14, 2015

Palette-based image editing

Inventors: Miklos J. Bergou (New York, NY); Fang Da (New York, NY)
Assignee: Adobe Systems Incorporated
H04N1/46G06K9/6218G06T5/40G06T5/50G06T19/20H04N1/62G09G5/06
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 9,083,918
App. No.
13/476,842
Granted
Jul 14, 2015
Kind
B2
Abstract

Methods, apparatus, and non-transitory computer-readable storage media for editing the colors of objects or regions in digital images. A method for editing images using a color palette is provided. A color palette is described that may be suitable for editing images, which may include specified objects or regions in images. The color palette may display image-specific colors identified using image-dependent techniques described herein. These color palettes may also modify the colors in the image corresponding to the displayed colors in the color palette interface. The method may implement structure-preserving techniques that preserve the structure of the color histogram of the image, thus preserving the natural look of the original image.

Claims (52)

1. A method, comprising:

performing an image editing operation by one or more computing devices, the image editing operation comprising:

obtaining an input image;

decomposing the input image into a single three dimensional color histogram comprising pixel locations according to color, each pixel location in the single three dimensional color histogram representing a pixel in the input image;

creating clusters of pixel locations based on color in the single three dimensional color histogram according to a color clustering technique;

identifying one or more colors in the single three dimensional color histogram according to the clusters;

displaying a color palette comprising one or more palette colors obtained at least in part using the identified one or more colors from the clustering technique and one or more controls corresponding to each of the one or more palette colors, each control operable to modify the respective color in the input image associated with the respective palette color;

obtaining an input modifying a palette color;

performing a structure-preserving editing technique that modifies the color of the clusters corresponding to the palette color in the single three dimensional color histogram, the structure-preserving editing technique maintaining a structure of the clusters in the input image;

modifying colors in the input image based on the changes to the single three dimensional color histogram; and

displaying the modified input image.

2. The method as recited in claim 1 , wherein said identifying one or more colors comprises identifying one or more rays in the single three dimensional color histogram, the rays each corresponding to one of the clusters of pixel locations in the single three dimensional color histogram, wherein the rays emanate from the origin of the single three dimensional color histogram and pass through a point in the corresponding cluster of pixel locations in the single three dimensional color histogram.

3. The method as recited in claim 2 , wherein said identifying one or more colors comprises computing a weighted average color of each cluster corresponding to each of the one or more rays.

4. The method as recited in claim 2 , further comprising, in response to input to one of the controls, modifying the single three dimensional color histogram by rotating one or more of the rays, the rotation rotating pixels in the corresponding cluster according to the rotated ray.

5. The method as recited in claim 1 , further comprising:

obtaining input selecting a color from a set of colors corresponding to respective clusters; and

modifying a color palette interface to indicate the selected color.

6. The method as recited in claim 1 , further comprising obtaining input specifying a number of palette colors to be included in the color palette, wherein said identifying of one or more colors is restricted to the specified number of palette colors.

7. A system, comprising:

at least one processor; and

a memory comprising program instructions, the program instructions being executable by the at least one processor to perform operations comprising:

obtaining an input image;

decomposing the input image into a single three dimensional color histogram comprising pixel locations according to color, each pixel location in the single three dimensional color histogram representing a pixel in the input image;

creating clusters of pixel locations based on color in the single three dimensional color histogram according to a color clustering technique;

identifying one or more colors in the single three dimensional color histogram according to the clusters;

displaying a color palette interface comprising one or more palette colors obtained at least in part using the identified one or more colors from the clustering technique and one or more controls corresponding to each of the one or more palette colors, each control operable to modify the respective color in the input image associated with the respective palette color;

obtaining input modifying a palette color;

performing a structure-preserving editing technique that modifies the color of the corresponding clusters in the single three dimensional color histogram;

modifying the input image based on the modified single three dimensional color histogram; and

displaying the modified input image.

8. The system as recited in claim 7 , wherein the identifying one or more colors comprises identifying one or more rays in the single three dimensional color histogram, the rays each corresponding to one of the clusters of pixel locations in the single three dimensional color histogram, wherein the rays emanate from the origin of the single three dimensional color histogram and pass through a point in the corresponding cluster of pixel locations in the single three dimensional color histogram.

9. The system as recited in claim 8 , wherein the operations further comprise, in response to input to one of the controls, modifying the respective color in the image by rotating the corresponding ray in the single three dimensional color histogram and rotating pixels in the corresponding cluster according to the rotated ray.

10. The system as recited in claim 7 , wherein the operations further comprise:

obtaining input specifying a color, the specified color corresponding to a respective cluster of one of the clusters; and

modifying the color palette to indicate the specified color.

11. The system as recited in claim 7 , wherein the operations further comprise obtaining input specifying a number of colors to be included in the color palette and wherein the identifying one or more colors is restricted to the specified number of colors.

12. A non-transitory computer-readable storage medium, storing program instructions, the program instructions being computer-executable to implement operations comprising:

obtaining an input image;

decomposing the input image into a single three dimensional color histogram comprising pixel locations according to color, each pixel location in the single three dimensional color histogram representing a pixel in the input image;

creating clusters of pixel locations based on color in the single three dimensional color histogram according to a color clustering technique;

identifying one or more colors in the single three dimensional color histogram according to the clusters;

displaying a color palette comprising one or more palette colors obtained at least in part using the identified one or more colors from the clustering technique and one or more controls corresponding to each of the one or more palette colors, each control operable to modify the respective color in the input image associated with the respective palette color;

obtaining input modifying a palette color;

performing a structure-preserving editing technique that modifies the color of the corresponding clusters in the single three dimensional color histogram;

modifying the input image based on the modified single three dimensional color histogram; and

displaying the modified input image.

13. The non-transitory computer-readable storage medium as recited in claim 12 , wherein the identifying one or more colors comprises identifying one or more rays in the single three dimensional color histogram, the rays each corresponding to one of the clusters of pixel locations in the single three dimensional color histogram, wherein the rays emanate from the origin of the single three dimensional color histogram and pass through a point in the corresponding cluster of pixel locations in the single three dimensional color histogram.

14. The non-transitory computer readable storage medium as recited in claim 13 , wherein the operations further comprise, in response to input to one of the controls, modifying the respective color in the image by rotating the corresponding ray in the single three dimensional color histogram and rotating pixels in the corresponding cluster according to the rotated ray.

15. The non-transitory computer-readable storage medium as recited in claim 12 , wherein the operations further comprise:

obtaining input specifying a color from a plurality of colors corresponding to respective clusters from the clustering technique; and

modifying the color palette to indicate the specified color.

16. The non-transitory computer-readable storage medium as recited in claim 12 , wherein the operations further comprise obtaining input specifying a number of colors to be included in the color palette and wherein, said identifying the one or more colors is restricted to the specified number of colors.

Assignments (2)
CHANGE OF NAME Recorded Apr 8, 2019
From: ADOBE SYSTEMS INCORPORATED
To: ADOBE INC.
Reel/Frame 048867/0882 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 30, 2012
From: BERGOU, MIKLOS J.; DA, FANG
To: ADOBE SYSTEMS INCORPORATED
Reel/Frame 028291/0325 →
Continuity (2)
Provisional Application 61528045 · Aug 26, 2011
Related Publication 20130050238A1 · Feb 28, 2013