US20030234810A1 - Graphical user interface for color correction using curves - Google Patents

Graphical user interface for color correction using curves Download PDF

Info

Publication number
US20030234810A1
US20030234810A1 US10/177,569 US17756902A US2003234810A1 US 20030234810 A1 US20030234810 A1 US 20030234810A1 US 17756902 A US17756902 A US 17756902A US 2003234810 A1 US2003234810 A1 US 2003234810A1
Authority
US
United States
Prior art keywords
function curve
color
axis
component
curve
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US10/177,569
Other versions
US7671871B2 (en
Inventor
Robert Gonsalves
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Avid Technology Inc
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to US10/177,569 priority Critical patent/US7671871B2/en
Assigned to AVID TECHNOLOGY, INC. reassignment AVID TECHNOLOGY, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: GONSALVES, ROBERT
Publication of US20030234810A1 publication Critical patent/US20030234810A1/en
Application granted granted Critical
Publication of US7671871B2 publication Critical patent/US7671871B2/en
Assigned to WELLS FARGO CAPITAL FINANCE, LLC, AS AGENT reassignment WELLS FARGO CAPITAL FINANCE, LLC, AS AGENT SECURITY AGREEMENT Assignors: AVID TECHNOLOGY, INC., PINNACLE SYSTEMS, INC.
Assigned to KEYBANK NATIONAL ASSOCIATION, AS THE ADMINISTRATIVE AGENT reassignment KEYBANK NATIONAL ASSOCIATION, AS THE ADMINISTRATIVE AGENT PATENT SECURITY AGREEMENT Assignors: AVID TECHNOLOGY, INC.
Assigned to AVID TECHNOLOGY INC., AVID SYSTEMS, INC. reassignment AVID TECHNOLOGY INC. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: WELLS FARGO CAPITAL FINANCE, LLC
Assigned to CERBERUS BUSINESS FINANCE, LLC, AS COLLATERAL AGENT reassignment CERBERUS BUSINESS FINANCE, LLC, AS COLLATERAL AGENT ASSIGNMENT FOR SECURITY -- PATENTS Assignors: AVID TECHNOLOGY, INC.
Assigned to AVID TECHNOLOGY, INC. reassignment AVID TECHNOLOGY, INC. RELEASE OF SECURITY INTEREST IN UNITED STATES PATENTS Assignors: KEYBANK NATIONAL ASSOCIATION
Assigned to JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT reassignment JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: AVID TECHNOLOGY, INC.
Assigned to AVID TECHNOLOGY, INC. reassignment AVID TECHNOLOGY, INC. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: CERBERUS BUSINESS FINANCE, LLC
Assigned to AVID TECHNOLOGY, INC. reassignment AVID TECHNOLOGY, INC. RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 054900/0716) Assignors: JPMORGAN CHASE BANK, N.A.
Assigned to SIXTH STREET LENDING PARTNERS, AS ADMINISTRATIVE AGENT reassignment SIXTH STREET LENDING PARTNERS, AS ADMINISTRATIVE AGENT PATENT SECURITY AGREEMENT Assignors: AVID TECHNOLOGY, INC.
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/34Indicating arrangements 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • G11B27/034Electronic editing of digitised analogue information signals, e.g. audio or video signals on discs

Definitions

  • Color wheels commonly are used to set hue offsets for pixels within different ranges of luminance values. A pixel that has luminance within a specified range is modified by the hue offset set on a color wheel.
  • a “levels” display includes a histogram that shows how many pixels an image contains at each brightness level (for combined channels) or how many pixels an image contains at each level for each color component (for individual channels).
  • a user can modify the levels defining the highlights, midtones and shadows in the input image to an output image, thus modifying the histogram to create new pixel data for the output image.
  • Curves allow a user to manipulate one or more function curves that adjust individual components of pixels of an image, such as red, green, blue components. Additionally, a master curve allows the user to manipulate simultaneously all of the components of an image with a single function curve.
  • the RGB curves allow a user to perform a mathematically nonlinear adjustment to a color component. These curves are particularly useful for color correction because a large number of color problems in an image are nonlinear problems created at the time of acquisition of the image, and these problems are typically introduced in the red, green and blue components of pixels of the image.
  • the user interface for RGB curves appears as shown in FIG. 1.
  • four curves are displayed, for the red component 10 , the green component 12 , the blue component 14 and a master 16 .
  • the user interface for an RGB curve appears as shown in FIG. 2.
  • this interface includes gradients 22 and 24 adjacent to the two axes of the function curve display.
  • Gradient 22 informs a user of the range of input values for the channel along the horizontal axis.
  • Gradient 24 informs a user of the range of output values for the channel along the vertical axis.
  • a particular color is selected, such as gray, and the effect of each curve on pixels of that color may be displayed as a background image for the curve.
  • a background image also may indicate a color to which tones corresponding to a selected and manipulated point of a curve will be modified or corrected.
  • An image representing a gradient from the color component, through gray, to a complement of the color component may be displayed in association with the displayed function curve to suggest a result of color correction to be applied to the input image by manipulation of the function curve.
  • a background image may suggest to the user what will happen if a point on the curve is moved.
  • the resulting image will have a magenta tint.
  • the background image for the curve for the green channel shows more magenta in the lower right.
  • a user can determine from an image to be corrected and the background image of the curves both which curve to use and approximately which direction to manipulate the curve.
  • An example way to create a background image for a curve of a particular color component is to use a grayscale image with a vertical gradient to provide values for the color component of pixels in the background image.
  • a grayscale image having a diagonal gradient then may be used to provide values for the other color components of the pixels.
  • a grayscale image with a diagonal gradient may be used to provide values for all of the components of the pixels for background image of the master curve.
  • FIG. 1 is a diagram of a conventional RGB curves interface.
  • FIG. 2 is a diagram of a conventional RGB curves interface.
  • FIG. 3 is a diagram of an example RGB curves interface with a background image.
  • FIG. 4A-B are diagrams illustrating how a curve may be manipulable in a plane.
  • FIG. 5 is a diagram of an example color space, illustrating an axis in the color space from black to white and several planes in the color space including this axis.
  • FIGS. 6 and 7 are diagrams of example images with gradients (vertical and diagonal).
  • FIG. 8 is a flowchart describing how the images of FIGS. 6 and 7 may be combined to produce the background images in FIG. 3.
  • FIG. 9 is a block diagram of an example system for color correction.
  • FIG. 3 a diagram of an example RGB curves interface with a background image will now be described.
  • An interface ( 30 , 32 , 34 , 36 ) is provided for each color component or channel.
  • the interface displays, on a background image, a user modifiable function curve 38 that maps input values for the color component of a pixel on a first axis to output values for the color component for the pixel on a second axis.
  • a single curve may be displayed for a single component.
  • the function curve also may be displayed in a rectangular display region having the first axis displayed horizontally and the second axis displayed vertically, as shown in FIG. 3.
  • Each curve in its initial state is an identity function, and thus appears as a diagonal line on the display.
  • other configurations are possible, including both different shapes of the display and different orientations of the function curve.
  • the pixels of the background image are colors indicative of a tint that will result if the corresponding modification is applied to input pixels by adjustment of the function curve.
  • the pixels of the background image are the colors of output pixels having output values for the color component corresponding to an input value for the color component from an input pixel of a selected color.
  • the selected color may be gray, for example a gray represented by 128 Red, 128 Green and 128 Blue where red, green and blue range from 0 to 255. Other colors also may be selected. It is possible to dynamically update the display so that the background image takes into account changes made using the other color curves.
  • the background image also may be considered as representative of a plane in color space defined by the color component and an axis between black and white in the color space. Such a perspective is explained in more detail below in connection with FIG. 5.
  • This image also includes a gradient from black to white along the diagonal of the function curve.
  • this background image includes a gradient from the component color, through gray, to its complement color. In the example interface in FIG. 3, this gradient occurs along the diagonal from the top right to the bottom left.
  • the display of the complement color indicates a modification that will result by removal of the color of the channel processed by a particular curve.
  • An image representing this gradient from the color component, through gray, to a complement of the color component may be displayed in association with the displayed function curve to suggest a result of color correction to be applied to the input image by manipulation of the function curve.
  • FIGS. 4 A- 4 B an example of how the background image provides an intuitive interface will be provided.
  • a user selects a point 400 on the function curve 402 shown in FIG. 4A, that is at the center of the curve, and moves the point to the upper left to the position shown in FIG. 4A, the midtones in the scene will appear to be tinted towards green by the corresponding correction.
  • the midtones in the scene will appear to be tinted towards magenta by the corresponding correction.
  • FIG. 5 illustrates how the background image in FIG. 4A- 4 B relates to a color space.
  • a color space has an axis defined by the luminance from a point representing black (B) to a point representing white (W).
  • the background image represents a plane in the color space that is defined by the color component and an axis between black and white in the color space.
  • the axis 506 represents luminance.
  • the positions of green 508 (G) and magenta 510 (M) are at opposite radii from the center.
  • the plane in the color space that incorporates green, magenta and the axis from black to white is representative of a suitable background image. Similar analyses could be made using representations of other color spaces. Because curves are commonly provided for red, green and blue components, the background images would typically be representative of planes in the color space that include red and cyan, or blue and yellow, or green and magenta.
  • FIG. 6 illustrates an image or grayscale pattern with a vertical gradient that is dark at the bottom 600 and light at the top 602 .
  • FIG. 7 illustrates an image or grayscale pattern with a diagonal gradient that is dark at the bottom left 700 and light at the top right 702 , and gray at both the top left 704 and bottom right 706 corners.
  • values for the color component affected by the curve are defined by the image having the vertical gradient.
  • Values for the color components not affected by the curve are defined by the image having the diagonal gradient.
  • the grayscale images with different gradients are combined to create a background image.
  • the following tables represent how the different images are selected, colored and combined for each background image shown in FIG. 3. Display Red Channel Green Channel Blue Channel Red Curve Vertical Diagonal Diagonal Green Curve Diagonal Vertical Diagonal Blue Curve Diagonal Diagonal Vertical Master Diagonal Diagonal Diagonal Diagonal
  • FIG. 8 A more detailed flowchart 800 describing how these images are combined will now be described in connection with FIG. 8.
  • This flowchart may be implemented as a computer program in a typical computer programming language such as C.
  • Such a program is compiled and stored as executable computer program instructions on a computer readable medium that, when executed by a computer, cause the computer to perform the specified operations.
  • values are first initialized 802 according to standard programming practice.
  • horizontal and vertical values (x,y) used to create the background image are initialized 804 to zero.
  • a normalized y value (y_norm) that maps the current y value (y) to the designated height (hei) for the background image, given the maximum component value (max_comp) is then calculated 806 by computing:
  • y _norm max_comp ⁇ y *max_comp/hei.
  • This value can be forced to be a valid value for a component of a pixel.
  • a normalized x value (x_norm) that maps the current x value (x) to the designated width (wid) for the background image is then calculated 810 , by computing:
  • x _norm x *max_comp/wid.
  • a value “diagonal” is then computed 812 to provide the value of the horizontal gradient gray scale image for the current x position in the current y line of the background image, by computing:
  • This value can be forced to be a valid value for a component of a pixel.
  • the current pixel of the background image is created 814 by using either the “diagonal” value or the “vertical” value for the designated component. For example, if a background image is being generated for the red channel, the red component is set to “vertical”, whereas the green and blue components are set to “diagonal”.
  • the x value is then incremented 816 . If the x value equals the width (wid), as determined in 818 , the end of the line has been reached and the next line is processed by incrementing y in 820 . Otherwise, processing returns to 810 . After the y value has been incremented in 820 , if y is equal to the height (hei), as determined in 822 , then the image has been generated, otherwise processing returns to 806 .
  • FIG. 9 is a data flow diagram of an example system 900 for color correction using curves.
  • a curves processing module 902 generates curve display data 904 .
  • the curves display data includes graphical representations of the function curve for a color component and a background image or other display data that suggests how modifications to the function curve will affect an image.
  • This display data is provided to a user interface (not shown), which is typically a computer display.
  • User input 906 is received from an input device (not shown) such as a keyboard, mouse, trackball or other conventional computer input device.
  • the curves processing module 902 provides the definition of a function curve 908 and the display data 904 according to changes to the function curve specified by the user.
  • the function curve definition 908 is provided to a color correction module 910 that processes an input image 912 to produce an output image 914 according to the function curve.
  • the output image 914 also may be displayed to the user through the user interface (not shown) or through another display.
  • the curves processing module and the color correction module may be implemented using special purpose hardware and/or computer programs executed on general purpose hardware.

Abstract

To make an intuitive interface for curves for color correction, a particular color is selected, such as gray, and the effect of each curve on pixels of that color may be displayed as a background image for the curve. A background image also may indicate a color to which tones corresponding to a selected and manipulated point of a curve will be modified or corrected. An image representing a gradient from the color component, through gray, to a complement of the color component may be displayed in association with the displayed function curve to suggest a result of color correction to be applied to the input image by manipulation of the function curve. A background image may suggest to the user what will happen if a point on the curve is moved. For example, if a user takes a point on the green curve that is in the center of the display and moves it to the lower right, the resulting image will have a magenta tint. The background image for the curve for the green channel shows more magenta in the lower right. A user can determine from an image to be corrected and the background image of the curves both which curve to use and approximately which direction to manipulate the curve.

Description

    BACKGROUND
  • There are a variety of tools for color correction for video and still images, such as color wheels, levels and curves. [0001]
  • Color wheels commonly are used to set hue offsets for pixels within different ranges of luminance values. A pixel that has luminance within a specified range is modified by the hue offset set on a color wheel. [0002]
  • A “levels” display includes a histogram that shows how many pixels an image contains at each brightness level (for combined channels) or how many pixels an image contains at each level for each color component (for individual channels). A user can modify the levels defining the highlights, midtones and shadows in the input image to an output image, thus modifying the histogram to create new pixel data for the output image. [0003]
  • Curves allow a user to manipulate one or more function curves that adjust individual components of pixels of an image, such as red, green, blue components. Additionally, a master curve allows the user to manipulate simultaneously all of the components of an image with a single function curve. The RGB curves allow a user to perform a mathematically nonlinear adjustment to a color component. These curves are particularly useful for color correction because a large number of color problems in an image are nonlinear problems created at the time of acquisition of the image, and these problems are typically introduced in the red, green and blue components of pixels of the image. [0004]
  • As an example, in the SYMPHONY editing system from Avid Technology, Inc., the user interface for RGB curves appears as shown in FIG. 1. In this interface, four curves are displayed, for the [0005] red component 10, the green component 12, the blue component 14 and a master 16.
  • As another example, in the PHOTOSHOP editing system from Adobe Systems, Inc., the user interface for an RGB curve appears as shown in FIG. 2. In this interface, only one [0006] curve 20 is shown. This interface includes gradients 22 and 24 adjacent to the two axes of the function curve display. Gradient 22 informs a user of the range of input values for the channel along the horizontal axis. Gradient 24 informs a user of the range of output values for the channel along the vertical axis.
  • SUMMARY
  • The conventional user interfaces for RGB curves for color correction are not intuitive to users that are new to color correction. That is, a user that is unfamiliar with using RGB curves for color correction cannot easily predict the behavior of operations performed using these RGB curves from the user interface. Through other sources of information, such as textbooks on color correction, and practice, a user develops the ability to determine how curves will affect an image. [0007]
  • The lack of an intuitive display is due to the nature of the curves operation. First, there are multiple input values on a curve that are mapped to different output values. Also, the color of any pixel is dependent on both the component processed by the curve and the other components of the pixel that are not processed by the curve. Thus, two input pixels having the same value for one channel produce the same output from the function curve for that channel, but result in different colors when modified by that function curve due to the other components of the pixels. [0008]
  • To make an intuitive interface for curves for color correction, a particular color is selected, such as gray, and the effect of each curve on pixels of that color may be displayed as a background image for the curve. A background image also may indicate a color to which tones corresponding to a selected and manipulated point of a curve will be modified or corrected. An image representing a gradient from the color component, through gray, to a complement of the color component may be displayed in association with the displayed function curve to suggest a result of color correction to be applied to the input image by manipulation of the function curve. A background image may suggest to the user what will happen if a point on the curve is moved. For example, if a user takes a point on the green curve that is in the center of the display and moves it to the lower right, the resulting image will have a magenta tint. The background image for the curve for the green channel shows more magenta in the lower right. A user can determine from an image to be corrected and the background image of the curves both which curve to use and approximately which direction to manipulate the curve. [0009]
  • An example way to create a background image for a curve of a particular color component is to use a grayscale image with a vertical gradient to provide values for the color component of pixels in the background image. A grayscale image having a diagonal gradient then may be used to provide values for the other color components of the pixels. A grayscale image with a diagonal gradient may be used to provide values for all of the components of the pixels for background image of the master curve.[0010]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a diagram of a conventional RGB curves interface. [0011]
  • FIG. 2 is a diagram of a conventional RGB curves interface. [0012]
  • FIG. 3 is a diagram of an example RGB curves interface with a background image. [0013]
  • FIG. 4A-B are diagrams illustrating how a curve may be manipulable in a plane. [0014]
  • FIG. 5 is a diagram of an example color space, illustrating an axis in the color space from black to white and several planes in the color space including this axis. [0015]
  • FIGS. 6 and 7 are diagrams of example images with gradients (vertical and diagonal). [0016]
  • FIG. 8 is a flowchart describing how the images of FIGS. 6 and 7 may be combined to produce the background images in FIG. 3. [0017]
  • FIG. 9 is a block diagram of an example system for color correction.[0018]
  • DETAILED DESCRIPTION
  • Referring now to FIG. 3, a diagram of an example RGB curves interface with a background image will now be described. An interface ([0019] 30, 32, 34, 36) is provided for each color component or channel. The interface displays, on a background image, a user modifiable function curve 38 that maps input values for the color component of a pixel on a first axis to output values for the color component for the pixel on a second axis.
  • A single curve may be displayed for a single component. In some applications, it is desireable to show multiple curves for multiple components, and a master curve, such as in FIG. 3. If multiple curves are displayed, the display would include a first function curve for a red component, a second function curve for a blue component, and a third function curve for a green component as shown in FIG. 3, as well as the master curve. [0020]
  • The function curve also may be displayed in a rectangular display region having the first axis displayed horizontally and the second axis displayed vertically, as shown in FIG. 3. Each curve in its initial state is an identity function, and thus appears as a diagonal line on the display. However, other configurations are possible, including both different shapes of the display and different orientations of the function curve. [0021]
  • Conventional techniques may be provided for allowing the function curve to be manipulated, including but not limited to specifying anchor points on the curve that can be moved, and between which the rest of the curve is generated by interpolation or other mathematical function. [0022]
  • Any conventional structures or processes, implemented using either special purpose hardware and/or software executed by general purpose hardware, can be used to process the function curve to define and apply a color correction operation for an image. [0023]
  • The pixels of the background image are colors indicative of a tint that will result if the corresponding modification is applied to input pixels by adjustment of the function curve. In another aspect, the pixels of the background image are the colors of output pixels having output values for the color component corresponding to an input value for the color component from an input pixel of a selected color. The selected color may be gray, for example a gray represented by [0024] 128 Red, 128 Green and 128 Blue where red, green and blue range from 0 to 255. Other colors also may be selected. It is possible to dynamically update the display so that the background image takes into account changes made using the other color curves.
  • The background image also may be considered as representative of a plane in color space defined by the color component and an axis between black and white in the color space. Such a perspective is explained in more detail below in connection with FIG. 5. This image also includes a gradient from black to white along the diagonal of the function curve. Also, this background image includes a gradient from the component color, through gray, to its complement color. In the example interface in FIG. 3, this gradient occurs along the diagonal from the top right to the bottom left. The display of the complement color indicates a modification that will result by removal of the color of the channel processed by a particular curve. An image representing this gradient from the color component, through gray, to a complement of the color component may be displayed in association with the displayed function curve to suggest a result of color correction to be applied to the input image by manipulation of the function curve. [0025]
  • In FIGS. [0026] 4A-4B, an example of how the background image provides an intuitive interface will be provided. In particular, if a user selects a point 400 on the function curve 402 shown in FIG. 4A, that is at the center of the curve, and moves the point to the upper left to the position shown in FIG. 4A, the midtones in the scene will appear to be tinted towards green by the corresponding correction. If the user moves the same point 400 to the lower right as shown in FIG. 4B, the midtones in the scene will appear to be tinted towards magenta by the corresponding correction.
  • FIG. 5 illustrates how the background image in FIG. 4A-[0027] 4B relates to a color space. In particular, a color space has an axis defined by the luminance from a point representing black (B) to a point representing white (W). For any given color component for which a curve may be generated, the background image represents a plane in the color space that is defined by the color component and an axis between black and white in the color space. Thus, assuming an HLS color space 500 that is represented by two cones 502 and 504, the axis 506 represents luminance. The positions of green 508 (G) and magenta 510 (M) are at opposite radii from the center. The plane in the color space that incorporates green, magenta and the axis from black to white is representative of a suitable background image. Similar analyses could be made using representations of other color spaces. Because curves are commonly provided for red, green and blue components, the background images would typically be representative of planes in the color space that include red and cyan, or blue and yellow, or green and magenta.
  • A process from which a suitable background image may be generated will now be described in connection with FIGS. [0028] 6-8.
  • FIG. 6 illustrates an image or grayscale pattern with a vertical gradient that is dark at the bottom [0029] 600 and light at the top 602. FIG. 7 illustrates an image or grayscale pattern with a diagonal gradient that is dark at the bottom left 700 and light at the top right 702, and gray at both the top left 704 and bottom right 706 corners. For pixels in the background image for each curve, values for the color component affected by the curve are defined by the image having the vertical gradient. Values for the color components not affected by the curve are defined by the image having the diagonal gradient. In effect the grayscale images with different gradients are combined to create a background image. The following tables represent how the different images are selected, colored and combined for each background image shown in FIG. 3.
    Display Red Channel Green Channel Blue Channel
    Red Curve Vertical Diagonal Diagonal
    Green Curve Diagonal Vertical Diagonal
    Blue Curve Diagonal Diagonal Vertical
    Master Diagonal Diagonal Diagonal
  • A more [0030] detailed flowchart 800 describing how these images are combined will now be described in connection with FIG. 8. This flowchart may be implemented as a computer program in a typical computer programming language such as C. Such a program is compiled and stored as executable computer program instructions on a computer readable medium that, when executed by a computer, cause the computer to perform the specified operations.
  • In FIG. 8, values are first initialized [0031] 802 according to standard programming practice. In particular, horizontal and vertical values (x,y) used to create the background image are initialized 804 to zero. A normalized y value (y_norm) that maps the current y value (y) to the designated height (hei) for the background image, given the maximum component value (max_comp), is then calculated 806 by computing:
  • y_norm=max_comp−y*max_comp/hei.
  • On an 8-bit system, max_comp=255. A value “vertical” is then computed [0032] 808 to provide the value of the vertical gradient gray scale image for the current line of the background image, by computing:
  • vertical=y_norm.
  • This value can be forced to be a valid value for a component of a pixel. [0033]
  • A normalized x value (x_norm) that maps the current x value (x) to the designated width (wid) for the background image is then calculated [0034] 810, by computing:
  • x_norm=x*max_comp/wid.
  • A value “diagonal” is then computed [0035] 812 to provide the value of the horizontal gradient gray scale image for the current x position in the current y line of the background image, by computing:
  • diagonal=(x_norm+y_norm)/2.
  • This value can be forced to be a valid value for a component of a pixel. According to the table above and the curve for which the background image is being created, the current pixel of the background image is created [0036] 814 by using either the “diagonal” value or the “vertical” value for the designated component. For example, if a background image is being generated for the red channel, the red component is set to “vertical”, whereas the green and blue components are set to “diagonal”. The x value is then incremented 816. If the x value equals the width (wid), as determined in 818, the end of the line has been reached and the next line is processed by incrementing y in 820. Otherwise, processing returns to 810. After the y value has been incremented in 820, if y is equal to the height (hei), as determined in 822, then the image has been generated, otherwise processing returns to 806.
  • FIG. 9 is a data flow diagram of an [0037] example system 900 for color correction using curves. A curves processing module 902 generates curve display data 904. The curves display data includes graphical representations of the function curve for a color component and a background image or other display data that suggests how modifications to the function curve will affect an image. This display data is provided to a user interface (not shown), which is typically a computer display. User input 906 is received from an input device (not shown) such as a keyboard, mouse, trackball or other conventional computer input device. The curves processing module 902 provides the definition of a function curve 908 and the display data 904 according to changes to the function curve specified by the user. The function curve definition 908 is provided to a color correction module 910 that processes an input image 912 to produce an output image 914 according to the function curve. The output image 914 also may be displayed to the user through the user interface (not shown) or through another display. The curves processing module and the color correction module may be implemented using special purpose hardware and/or computer programs executed on general purpose hardware.
  • Having now described an example implementation, it should be apparent to those skilled in the art that the foregoing is merely illustrative and not limiting, having been presented by way of example only. Numerous modifications and other implementations are within the capabilities of one of ordinary skill in the art and are contemplated as falling within the scope of the invention.[0038]

Claims (28)

What is claimed is:
1. A graphical user interface for performing color correction, comprising:
an interface that displays, on a background image, a user modifiable function curve that maps input values for a color component of a pixel on a first axis to output values for the color component for the pixel on a second axis, wherein pixels of the background image are the colors of output pixels having output values for the color component corresponding to an input value for the color component from an input pixel of a selected color; and
means for processing modifications made to the function curve to define a color correction operation.
2. The graphical user interface of claim 1, wherein the selected color is gray.
3. The graphical user interface of claim 1, wherein the interface displays a plurality of function curves, including a first function curve for a red component, a second function curve for a blue component, and a third function curve for a green component.
4. The graphical user interface of claim 3, wherein each function curve is displayed in a rectangular display region having the first axis displayed horizontally and the second axis displayed vertically.
5. The graphical user interface of claim 1, wherein the function curve is displayed in a rectangular display region having the first axis displayed horizontally and the second axis displayed vertically.
6. A computer program product, comprising:
a computer readable medium;
computer program instructions stored on the computer readable medium that, when executed by a computer, instruct the computer to implement a graphical user interface for performing color correction, comprising an interface that displays, on a background image, a user modifiable function curve that maps input values for a color component of a pixel on a first axis to output values for the color component for the pixel on a second axis, wherein pixels of the background image are the colors of output pixels having output values for the color component corresponding to an input value for the color component from an input pixel of a selected color.
7. The computer program product of claim 6, wherein the selected color is gray.
8. The computer program product of claim 6, wherein the interface displays a plurality of function curves, including a first function curve for a red component, a second function curve for a blue component, and a third function curve for a green component.
9. The computer program product of claim 8, wherein each function curve is displayed in a rectangular display region having the first axis displayed horizontally and the second axis displayed vertically.
10. The computer program product of claim 6, wherein the function curve is displayed in a rectangular display region having the first axis displayed horizontally and the second axis displayed vertically.
11. A method for providing a graphical user interface for performing color correction, comprising:
displaying, on a background image, a user modifiable function curve that maps input values for a color component of a pixel on a first axis to output values for the color component for the pixel on a second axis, wherein pixels of the background image are the colors of output pixels having output values for the color component corresponding to an input value for the color component from an input pixel of a selected color; and
processing modifications made to the function curve to define a color correction operation.
12. The method of claim 11, wherein the selected color is gray.
13. The method of claim 11, wherein displaying comprises displaying a plurality of function curves, including a first function curve for a red component, a second function curve for a blue component, and a third function curve for a green component.
14. The method of claim 13, wherein each function curve is displayed in a rectangular display region having the first axis displayed horizontally and the second axis displayed vertically.
15. The method of claim 11, wherein the function curve is displayed in a rectangular display region having the first axis displayed horizontally and the second axis displayed vertically.
16. A graphical user interface for performing color correction, comprising:
an interface interface that displays, on a background image, a user modifiable function curve that maps input values for a color component of a pixel on a first axis to output values for the color component for the pixel on a second axis, wherein the background image represents a plane in color space defined by the color component and an axis between black and white in the color space; and
means for processing modifications made to the curve to define a color correction operation.
17. The graphical user interface of claim 16, wherein the plane includes red and cyan.
18. The graphical user interface of claim 16, wherein the plane includes blue and yellow.
19. The graphical user interface of claim 16, wherein the plane includes green and magenta.
20. The graphical user interface of claim 16, wherein the interface displays a plurality of function curves, including a first function curve for a red component, a second function curve for a blue component, and a third function curve for a green component.
21. The graphical user interface of claim 20, wherein each function curve is displayed in a rectangular display region having the first axis displayed horizontally and the second axis displayed vertically.
22. The graphical user interface of claim 16, wherein the function curve is displayed in a rectangular display region having the first axis displayed horizontally and the second axis displayed vertically.
23. A graphical user interface for performing color correction, comprising:
an interface that displays, on a background image, a user modifiable function curve that maps input values for a color component of a pixel on a first axis to output values for the color component for the pixel on a second axis, wherein pixels of the background image are colors indicative of a result of color correction applied to input pixels by adjustment of the function curve; and
means for processing modifications made to the curve to define a color correction operation.
24. A graphical user interface for performing color correction, comprising:
an interface that displays a user modifiable function curve that maps input values for a color component of a pixel on a first axis to output values for the color component for the pixel on a second axis, and that displays an image representing a gradient from the color component, through gray, to a complement of the color component, wherein the image is displayed in association with the displayed function curve so as to suggest a result of color correction to be applied to the input image by manipulation of the function curve; and
means for processing modifications made to the function curve to define a color correction operation.
25. The graphical user interface of claim 24, wherein the color component is red and the complement is cyan.
26. The graphical user interface of claim 24, wherein the color component is blue and the complement is yellow.
27. The graphical user interface of claim 24, wherein the color component is green and the complement is magenta.
28. A method for generating an image for a graphical user interface for performing color correction operations using a function curve for a selected color component, comprising:
accessing a first image having a vertical gradient of the selected color component;
accessing a second image having a diagonal gradient of at least one other color component;
combining the first and second images to create a background image;
displaying controls for the function curve for the selected color component on the background image.
US10/177,569 2002-06-21 2002-06-21 Graphical user interface for color correction using curves Active 2027-02-01 US7671871B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/177,569 US7671871B2 (en) 2002-06-21 2002-06-21 Graphical user interface for color correction using curves

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/177,569 US7671871B2 (en) 2002-06-21 2002-06-21 Graphical user interface for color correction using curves

Publications (2)

Publication Number Publication Date
US20030234810A1 true US20030234810A1 (en) 2003-12-25
US7671871B2 US7671871B2 (en) 2010-03-02

Family

ID=29734433

Family Applications (1)

Application Number Title Priority Date Filing Date
US10/177,569 Active 2027-02-01 US7671871B2 (en) 2002-06-21 2002-06-21 Graphical user interface for color correction using curves

Country Status (1)

Country Link
US (1) US7671871B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130019196A1 (en) * 2011-07-14 2013-01-17 Apple Inc. Representing Ranges of Image Data at Multiple Resolutions
US20180167592A1 (en) * 2014-10-28 2018-06-14 Canon Kabushiki Kaisha Image display apparatus, control method for image display apparatus and storage medium for image quality adjustment

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10362959B2 (en) 2005-12-06 2019-07-30 St. Jude Medical, Atrial Fibrillation Division, Inc. System and method for assessing the proximity of an electrode to tissue in a body
US9492226B2 (en) * 2005-12-06 2016-11-15 St. Jude Medical, Atrial Fibrillation Division, Inc. Graphical user interface for real-time RF lesion depth display
US9254163B2 (en) 2005-12-06 2016-02-09 St. Jude Medical, Atrial Fibrillation Division, Inc. Assessment of electrode coupling for tissue ablation
US8449535B2 (en) * 2005-12-06 2013-05-28 St. Jude Medical, Atrial Fibrillation Division, Inc. System and method for assessing coupling between an electrode and tissue
EP1962710B1 (en) 2005-12-06 2015-08-12 St. Jude Medical, Atrial Fibrillation Division, Inc. Apparatus for displaying catheter electrode-tissue contact in electro-anatomic mapping and navigation system
US8603084B2 (en) 2005-12-06 2013-12-10 St. Jude Medical, Atrial Fibrillation Division, Inc. System and method for assessing the formation of a lesion in tissue
US8403925B2 (en) * 2006-12-06 2013-03-26 St. Jude Medical, Atrial Fibrillation Division, Inc. System and method for assessing lesions in tissue
WO2007070361A2 (en) 2005-12-06 2007-06-21 St. Jude Medical, Atrial Fibrillation Division, Inc. Assessment of electrode coupling for tissue ablation
US8406866B2 (en) 2005-12-06 2013-03-26 St. Jude Medical, Atrial Fibrillation Division, Inc. System and method for assessing coupling between an electrode and tissue
US8022964B2 (en) * 2006-04-21 2011-09-20 Apple Inc. 3D histogram and other user interface elements for color correcting images
WO2008047281A2 (en) * 2006-10-18 2008-04-24 Ambx Uk Limited Method and system for detecting effect of lighting device
US8290578B2 (en) 2007-12-28 2012-10-16 St. Jude Medical, Atrial Fibrillation Division, Inc. Method and apparatus for complex impedance compensation
US9204927B2 (en) 2009-05-13 2015-12-08 St. Jude Medical, Atrial Fibrillation Division, Inc. System and method for presenting information representative of lesion formation in tissue during an ablation procedure
US20100085377A1 (en) * 2008-10-08 2010-04-08 Xerox Corporation Constrained language-based color selection algorithm

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5424754A (en) * 1991-09-30 1995-06-13 Electronics For Imaging, Inc. Animated windows with multi-choice variants and analog controls
US5488674A (en) * 1992-05-15 1996-01-30 David Sarnoff Research Center, Inc. Method for fusing images and apparatus therefor
US5982379A (en) * 1996-06-04 1999-11-09 Ricoh Company, Ltd. Interactive color system editor and method of specifying potable color system framework representation
US6266103B1 (en) * 1998-04-03 2001-07-24 Da Vinci Systems, Inc. Methods and apparatus for generating custom gamma curves for color correction equipment
US6337692B1 (en) * 1998-04-03 2002-01-08 Da Vinci Systems, Inc. Primary and secondary color manipulations using hue, saturation, luminance and area isolation
US20030103057A1 (en) * 2001-12-03 2003-06-05 Eric Graves Method and apparatus for color correction
US6608942B1 (en) * 1998-01-12 2003-08-19 Canon Kabushiki Kaisha Method for smoothing jagged edges in digital images
US6728421B2 (en) * 2001-10-24 2004-04-27 Nik Multimedia, Inc. User definable image reference points
US6850249B1 (en) * 1998-04-03 2005-02-01 Da Vinci Systems, Inc. Automatic region of interest tracking for a color correction system

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5424754A (en) * 1991-09-30 1995-06-13 Electronics For Imaging, Inc. Animated windows with multi-choice variants and analog controls
US5488674A (en) * 1992-05-15 1996-01-30 David Sarnoff Research Center, Inc. Method for fusing images and apparatus therefor
US5982379A (en) * 1996-06-04 1999-11-09 Ricoh Company, Ltd. Interactive color system editor and method of specifying potable color system framework representation
US6608942B1 (en) * 1998-01-12 2003-08-19 Canon Kabushiki Kaisha Method for smoothing jagged edges in digital images
US6266103B1 (en) * 1998-04-03 2001-07-24 Da Vinci Systems, Inc. Methods and apparatus for generating custom gamma curves for color correction equipment
US6337692B1 (en) * 1998-04-03 2002-01-08 Da Vinci Systems, Inc. Primary and secondary color manipulations using hue, saturation, luminance and area isolation
US6850249B1 (en) * 1998-04-03 2005-02-01 Da Vinci Systems, Inc. Automatic region of interest tracking for a color correction system
US6728421B2 (en) * 2001-10-24 2004-04-27 Nik Multimedia, Inc. User definable image reference points
US20030103057A1 (en) * 2001-12-03 2003-06-05 Eric Graves Method and apparatus for color correction

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130019196A1 (en) * 2011-07-14 2013-01-17 Apple Inc. Representing Ranges of Image Data at Multiple Resolutions
US20180167592A1 (en) * 2014-10-28 2018-06-14 Canon Kabushiki Kaisha Image display apparatus, control method for image display apparatus and storage medium for image quality adjustment
US10447980B2 (en) * 2014-10-28 2019-10-15 Canon Kabushiki Kaisha Image display apparatus, control method for image display apparatus and storage medium for image quality adjustment

Also Published As

Publication number Publication date
US7671871B2 (en) 2010-03-02

Similar Documents

Publication Publication Date Title
US6724435B2 (en) Method for independently controlling hue or saturation of individual colors in a real time digital video image
US7671871B2 (en) Graphical user interface for color correction using curves
US5204665A (en) Color editing with simple encoded images
US5278678A (en) Color table display for interpolated color and anti-aliasing
US8194019B2 (en) Color signal converter, display unit, color signal conversion program, computer-readable storage medium storing color signal conversion program, and color signal conversion method
US6262817B1 (en) System and method for adjusting a color image
US5734369A (en) Method and apparatus for dithering images in a digital display system
US6122012A (en) Method of selective color control of digital video images
US7688326B2 (en) Apparatus, medium, and method for correcting color of an image
US5424754A (en) Animated windows with multi-choice variants and analog controls
US4992955A (en) Apparatus for representing continuous tone and high contrast images on a bilevel display
KR20040055058A (en) Color signal correction device and a method, and image processing system using the same and a method thereof
US6650337B2 (en) Increasing color accuracy
US20050083355A1 (en) Apparatus and method for image-processing, and display apparatus
JPH03121571A (en) Color picture processor
US6580434B1 (en) Halftoning without a full range of equally-spaced colors
JP3972471B2 (en) Image display device and image display method
JP3304381B2 (en) Image processing device having contour extraction function
KR100669695B1 (en) Method for color controll and display apparatus using the same
JP3027620B2 (en) Color editing method using simple coded images
JP2847740B2 (en) Coloring method for achromatic objects
JPH07141311A (en) Image processor
JP3230272B2 (en) Image processing device
JP2775748B2 (en) Method and apparatus for expressing limited color of color image
JP2009206836A (en) System and method for adjusting color image quality

Legal Events

Date Code Title Description
AS Assignment

Owner name: AVID TECHNOLOGY, INC., MASSACHUSETTS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:GONSALVES, ROBERT;REEL/FRAME:013058/0416

Effective date: 20020621

Owner name: AVID TECHNOLOGY, INC.,MASSACHUSETTS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:GONSALVES, ROBERT;REEL/FRAME:013058/0416

Effective date: 20020621

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: WELLS FARGO CAPITAL FINANCE, LLC, AS AGENT, MASSAC

Free format text: SECURITY AGREEMENT;ASSIGNORS:AVID TECHNOLOGY, INC.;PINNACLE SYSTEMS, INC.;REEL/FRAME:025675/0413

Effective date: 20101001

FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: KEYBANK NATIONAL ASSOCIATION, AS THE ADMINISTRATIV

Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:AVID TECHNOLOGY, INC.;REEL/FRAME:036008/0824

Effective date: 20150622

AS Assignment

Owner name: AVID SYSTEMS, INC., MASSACHUSETTS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO CAPITAL FINANCE, LLC;REEL/FRAME:036037/0693

Effective date: 20150622

Owner name: AVID TECHNOLOGY INC., MASSACHUSETTS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO CAPITAL FINANCE, LLC;REEL/FRAME:036037/0693

Effective date: 20150622

AS Assignment

Owner name: CERBERUS BUSINESS FINANCE, LLC, AS COLLATERAL AGEN

Free format text: ASSIGNMENT FOR SECURITY -- PATENTS;ASSIGNOR:AVID TECHNOLOGY, INC.;REEL/FRAME:037939/0958

Effective date: 20160226

AS Assignment

Owner name: AVID TECHNOLOGY, INC., MASSACHUSETTS

Free format text: RELEASE OF SECURITY INTEREST IN UNITED STATES PATENTS;ASSIGNOR:KEYBANK NATIONAL ASSOCIATION;REEL/FRAME:037970/0201

Effective date: 20160226

FPAY Fee payment

Year of fee payment: 8

AS Assignment

Owner name: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT, ILLINOIS

Free format text: SECURITY INTEREST;ASSIGNOR:AVID TECHNOLOGY, INC.;REEL/FRAME:054900/0716

Effective date: 20210105

Owner name: AVID TECHNOLOGY, INC., MASSACHUSETTS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CERBERUS BUSINESS FINANCE, LLC;REEL/FRAME:055731/0019

Effective date: 20210105

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 12

AS Assignment

Owner name: SIXTH STREET LENDING PARTNERS, AS ADMINISTRATIVE AGENT, TEXAS

Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:AVID TECHNOLOGY, INC.;REEL/FRAME:065523/0194

Effective date: 20231107

Owner name: AVID TECHNOLOGY, INC., MASSACHUSETTS

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 054900/0716);ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:065523/0146

Effective date: 20231107