This page documents my amateurish attempts to improve the look of my photos with the GIMP.
The first thing I do to make an image look better is to try and correct the colour levels. The histogram is good tool for this. A histogram is a graph where the x-axis consists of intensity values while the y-axis consists of the number of pixels with those intensity values. For an RGB image, you have three histograms, one for each channel. In the GIMP, there's a fourth histogram/channel called "Value", which is effectively what you'd get if you converted the image to greyscale.
Side note: the documentation I've read says that the Value channel is calculated by using max(R,G,B) which would make it, from what little I've seen, the V chanel from the HSV space.
The basic process involves moving the white and black markers on either end until they hist the values as they start to rise.
There are a number of tools that help you do this automatically.
Auto Adjust. Basically, this is white balance. You can't auto adjust each channel on its own; the operation works on all three channels.
Equalize. From the GIMP manual, this one "automatically adjusts the brightness of colors across the active layer so that the histogram for the Value channel is as nearly flat as possible, that is, so that each possible brightness value appears at about the same number of pixels as every other value." I haven't found this one to be that useful.
White Balance. This one works in each RGB channel separately. The markers are moved for each channel and pixel values are discarded if they only constitute 0.05% of the total pixels in the image. The result is bunched up pixels near each end of the histogram. Since it works in each channel independently, colours may be shifted.
Colour Enhance. The image is converted to HSV. The S (saturation) channel is then "normalized" in much the same fashion as the Normalize method, i.e. the markers are moved until they hit the first non-zero histogram value. Then the image is converted back to RGB. The result is more "punch" your colours, which may not be good, especially if they contain an unwanted tint.
Normalize. This one's simple. The markers are moved in the Value channel until they hit the first non-zero value. Basically your darkest point becomes black and your brightest point becomes white. The downside is that if you have any stray black or white pixel, even just one, the process becomes next to useless.
Stretch Contrast. Like Normalize, except that it works on each channel individually, so it can produce colour shift. This may be what you want if you image contain an unwanted tint. From the GIMP manual: "Use “Stretch Contrast” only if you want to remove an undesirable color tint from an image which should contain pure white and pure black."
Stretch HSV. Like Stretch Contrast, except it works in HSV. This often produces odd results.
I have not yet found:
- Anything that does "white balance", except in the Value channel alone (which is, from what I can tell, supposed to be the V channel from HSV).
- Anything between Stretch Contrast and White Balance. White Balance throws away pixels according to the 0.05% rule, but there's nothing that does lower than that.
- Something like Normalize, which only works in the Value channel, where you can specify the percentage at which pixels get thrown away. A 0% gives you back Normalize while a 0.05% gives you something like White Balance, but only in the value channel.
Another weird thing: I've actually tried adjusting the histogram markers in the Value channel to known values, say 75 and 210. I've then tried manually decomposing and image into HSV channels, adjusted the markers in the V channel to the same values, and recomposed the image. The results we're not the same. What gives?
Unsharp Filter Resources
There are plugins for GIMP that make the whole process of smart sharpening much easier.
Improving Colour Range
Decent sites here:
The first thing you want to do is improve the colour range and remove what haze you can from the photo. One technique involves fiddling with the colour levels. In the GIMP, choose levels and move the sliders so that they start where the histogram begins.
Another similar trick involves running an unsharp filter with a large Radius value (50-100) and a small Amount value (0.25-0.75).