The misconception of common RGB curve adjustments in digital image editing

Curve adjustments on all or individual RGB or Lab color channels are among the most commonly used tools in image editing. Examples for this kind of adjustment in Photoshop are Image > Adjust > Curves and the middle gray slider of the Image > Adjust > Levels dialogue. Curves in general are said to be one of the most versatile and powerful tools in digital image editing and in one way or another you may have been using them for years. Therefore it may come as a surprise to see, as we show here, that these readily available tools are fundamentally flawed.

This article and interactive demo applet will illustrate why any artistic use of curve type image adjustments on RGB color channels will inevitably result in an inferior and often unnatural rendition of color. The facts presented here may disagree with what you "know" about digital image editing even though they are backed solidly by the laws of physics in a three primary color system. We hope you will conduct your own tests with ColorPerfect and Photoshop which will prove these points. In trying ColorPerfect you are likely to find that you can propel the quality of your image's color a quantum leap ahead of what you achieved without it.

Contrary to common belief curves applied uniformly to RGB color channels don't leave colors unchanged

While it is obvious that applying a curve to an individual color channel will change an image's colors it is much less obvious that the same is also the case when applying curves uniformly to all three color channels of an RGB image. Instead it is often believed that applying the same curve to all of the RGB channels of an image leaves colors mostly unchanged. The fact that this kind of image adjustment keeps all grays neutral and distorts only colors is what likely led to this widespread belief. The human mind is fooled to a certain degree by the fact that there still are neutral tones in images distorted this way.

To illustrate these claims let's look at a simple curve adjustment being applied to RGB color values. We prepared an interactive demonstration using a simple gamma curve for you to play with. Gamma is the kind of curve the Levels command's middle gray slider uses in Photoshop. This is just one type of curve and we chose it for this demo because it is easily implemented, but the problems we are about to discover apply to all more elaborate RGB curve adjustments as well. All of these problems are remedied by using ColorPerfect's zone curves or ColorPerfect's gamma adjustment. Both of which also operate on RGB data by the way.

How RGB curves distort colors while leaving grays neutral

Bitte installieren Sie den Adobe Flash-Player 8.0 oder höher, um dieses Element sehen zu können.

Let us assume the color patches to the right to be individual pixels from an image we want to adjust by means of a curve. If we take a look at what such an adjustment does to any neutral pixel we will see that a gray in the original image will remain a gray no matter what we do with the curve. Feel free to modify the curve by dragging the curve or the slider. Why grays remain gray is easy to understand. R, G and B are identical in value for any gray and therefore are located on the same spot on the curve. All values are changed by the same amount so the color patch stays gray.

Next let's take a look at a colored pixel. R, G and B are different in value for colored pixels. These different values reside on different regions of the curve and so the curve influences the three color components of our color patch to differing degrees. Changing individual color components by differing percentages due to a curve always changes the color in a way that does not match natural changes in lighting and effectively results in another color. You can see that quite different percentages come into play when simply applying a curve to the RGB values of our example color patch. The second color patch on the top row below the curve is the result of the adjustment. Its difference in brightness relative to the original color patch on its left can make it tricky to discern at a glance that this is no longer the same color. Comparing this first color pair to the one on the bottom row will make the difference obvious though. Feel free to explore this further by clicking on any color patch to return to the color grid and to choose another color you'd like to experiment on. It should soon become fairly obvious that the result of the RGB curve adjustment on the top line most often runs astray from the original color while the adjustment on the third line does not. All RGB values on the third line are changed by equal percentages. In operating the gamma curve some more note how far away from the original color an RGB gamma curve can get your result when brightening or darkening an individual color and try to imagine what RGB curve adjustments in general will do to an image. We hope this demo applet helped you in grasping what RGB curves of any kind will do to your image's colors.

In ColorPerfect there are two basic kinds of image manipulations, adding or removing black and adding or removing white. Black and white are not opposite adjustments like some might believe but really are quite different in effect. Both kinds of adjustments do not alter an input's physical color and both are intended for artistic use. If you already are familiar with the two and our complete color integrity approach it will be interesting to note that the physically correct color adjustments shown in this demonstration manipulate black alone. That is so because it is safe to assume that a brightness change to a color due to the curve adjustment is always brought about by an equivalent to a change in exposure. To brighten or darken a patch while maintaining its color we need to adjust all color channels in a way that changes them by an equal percentage. When using curves like this the photographer usually wants to create an effect that mimics changes in the lighting of his scene. Since it often is impossible to do much about the actual lighting of a scene some might find it easier to think of this as an adjustment being equivalent to a combination of burning and dodging techniques in the darkroom. Even though curve operations are being applied on a per pixel basis and thus are usually far beyond what one could do with such methods in a traditional darkroom the same principles should still apply. In ColorPerfect they do. For curves applied to RGB or Lab images they don't.

L*C*h° as a means of measurement in the demo applet

Readers who are not familiar with the L*a*b* (Lab) color space please skip this paragraph as ColorPerfect itself does not use Lab color and you do not need to learn about it.

Below the pair of original and adjusted color in the demo applet the same colors are being displayed again but are denoted as L*C*h° values. These are derived from Lab but are easier to interpret for our purposes. Do note that ColorPerfect does not utilize Lab and that we only use L*C*h° as a means of measurement for this example. L* is a measurement of the perceived brightness, C* is a measurement of the perceived colorfulness and h° is a measurement of a color's hue. Neutral tones don't have a specific hue angle of course.

The important information to interpret this data is that since we want the artistic curve adjustment to represent a change in brightness or exposure h° must stay constant between the adjustments to preserve the original hue of a given color while C* must increase when brightening a color and decrease when darkening a color. If you play with the gamma curve a bit you will find that doing so changes h° quite noticeably and thus changes the color.

The right color pair on the second row is a brightness matched version of the original one. That means the first color of that second set has been produced by means that do not suffer from the problems intrinsic to curve adjustments applied to RGB values directly. This first color of the second set is the color the adjustment should yield while the second color is what it really yields when using the curve directly on RGB. Please note that there are limits to this demo applet. The second pair of colors stops just before the brightness that would force one color channel to exceed its maximum possible value. Because of that this second pair can be less bright than the color produced by the RGB gamma adjustment. It still is a valid brightness matched comparison though.

Special purpose RGB curves that do not harm your images

RGB curves are also used for encoding images and for calibration and when correctly used in these applications they are harmless and even necessary for correct color rendition. The tone reproduction curves used to encode images in working color spaces like sRGB, Apple RGB or Adobe RGB 1998 are fixed curves that can be undone at any time by applying an opposite fixed curve to decode the image. Undoing the encoding restores the correct colors and is a vital aspect for color conversion, printing and displaying images.

RGB curves also are used in calibration. That basically means they are being used to undo other curves which result because film and digital camera sensors do not perform ideally. Calibration is usually not a per image kind of adjustment though and is discussed elsewhere.