|
All photographs and articles on this web site are
Copyright © Eric R. Jeschke
(contact info
Site designed for screen resolutions of 1024x768 or greater. You may wish to maximize your browser for best viewing. |
|
GIMP Resources for Photographers
Home | Tutorials | Ask the guru | Mailing list | Flickr Forum Support | Translations | Fan Mail | Download | FAQ Adjust gamma |
| Before | After |
|---|---|
|
|
This technique does two "smart" things to avoid sharpening noise:
Giving credit where credit is due: I did not come up with this method. I adapted it for The GIMP from a Photoshop tutorial on the luminous-landscape.com photography web site (great web site BTW, I recommend it).
New information and comparison with
the "warp sharp" script!
|
Here's the original image loaded into the GIMP. It is
noticeably soft, probably due to bad autofocus. It really shows
up in prints.
Note: be sure to do any other editing that you want to on the image first, especially downsampling or upsampling (resizing). Sharpening should always be the last step that you do. |
|
|||
|
Duplicate the image by pressing Ctrl+D or right-click and select
Image/Duplicate. It might be wise to minimize the original
image window now. You can open it later to compare to the
result.
Right-click on the duplicate image and select Image/Mode/Decompose. In the decompose dialog box, select LAB (or HSV; see Note 1). Check the "As layers" checkbox (see Note 2) and click OK. This will create a new window with the image decomposed into the Luminosity ("brightness"), A and B channels as 3 layers. This will allow us to isolate and sharpen the luninosity channel which is a) the most important, and b) should be the cleanest in terms of noise. At this point I usually turn off visibility of the A and B layers in the Layers dialog by clicking on the "eyes". Note 1: if you happen to have an older version of the compose/decompose plug-in it may not have the LAB option. In that case use HSV (hue/saturation/value) instead. For any reference to the "LAB" image or "luminosity" channel below, substitute the "HSV" image/"value" window. The LAB option was not in my initial version of the GIMP (ver 1.2.1), but I got the newer version of the plug-in at the GIMP Plug-in Registry and compiled it myself. Don't worry if you don't have it; HSV works great too. Note 2: in the older version of the decompose plug-in there is no "As layers" checkbox; instead it will create the three channels as separate windows rather than three layers in one window. It really doesn't matter if you do it this way; the layers way just reduces the clutter on your screen. If you don't have the "As layers" option, I suggest you minimize (but not close) the hue and saturation (or A and B) windows. We'll need them later, but you don't want to accidentally pick one of them in the next few steps. |
|
|||
|
Go to the duplicate image. Right-click and select Filters/Edge
Detect/Edge. In the Edge Detect dialog box, select a parameter
value of the appropriate size for the edges in your image. You
may need to experiment with this. For the example image I chose
6.
Now convert the edges image to grayscale by right clicking on it and selecting Image/Mode/Grayscale. This image is going to become our sharpening mask. Note: in some tutorials they recommend converting to greyscale and then running the edge detection filter. The premise there (my guess) is that perhaps you don't want to find noise as edges. My thinking is that there may be an edge in color, but not tonality (e.g. transition between two light colors). Once you have converted to greyscale you may not be able to detect that edge any more. Besides, with a high enough edge detection parameter (here 6) you will avoid detecting random CCD noise as edges. |
|
|||
|
The next step is to adjust the tonality a little so that areas
that need sharpening are really white and anything that
doesn't need sharpening at all is really black.
Open the Levels dialog (Image/Colors/Levels). Bring the black point up and the white point down to filter out any insignificant edges. You may need to play around with the exact positions of the sliders. Click OK when the image outlines the significant edges in white and most everything else is black. How much you'll need to tweak this really depends on the image. There wasn't a lot of spurious edges shown here, so a small adjustment was all that was necessary. |
|
|||
| Now apply a gaussian blur (Filters/Blur/Gaussian Blur) to smooth out the edges a little. A radius of between 3 and 10 pixels (horizontal and vertical) should be enough. In the example I used 7. |
|
|||
|
If you want to you can use Levels again to adjust the white and
black points of the mask. I find this is usually a good idea
after the blur.
In this example I pulled the white point slider down a bit. |
|
|||
|
Open the Layers dialog. Select the LAB image (if HSV, value)
in the drop down box at the top and then click on the
Channels tab.
Click on the new channel button (
|
|
|||
|
Right-click in the blurred/edges image window and Select/All.
Right-click again and select Edit/Copy. (Alternatively you can
use keyboard shortcuts Ctrl+A and Ctrl+C in succession).
In the Layers dialog, make sure the Sharpening Mask channel is selected. Go back to the LAB (value) window and paste (Edit/Paste or Ctrl+V).
Select the Layers tab in the Layers dialog and click on the
anchor button ( |
|
|||
|
Click on the Channels tab in the Layers dialog. You should see
a tiny version of the sharpening mask in the channel icon,
indicating that you properly pasted the sharpening mask into the
new channel. At this point you may wish to click on the eye
icon to make the sharpening mask invisible.
Select the Sharpening Mask channel and click the "Channel
to Selection" button ( You can experiment with feathering the selection here if you want; I usually don't. |
|
|||
|
Important: in the Layers dialog, click on the Layers
tab and make sure the luminosity layer (if HSV, Background layer
of Value window) is selected, and is the only one
selected. We only want to sharpen the luminosity channel.
Apply an unsharp mask (Filters/Enhance/Unsharp Mask). You may want to experiment with the settings here. You will find that you can use much higher amounts of sharpening (than if the entire image were selected) without significantly degrading the image. In the example here I used Radius=1, Amount=2.0 (200% ?), Threshold=0. Now get rid of the selection (right-click and Select/None) and zoom in (= key) to examine the results. If you're not happy with the results, undo and try the sharpen step again with different parameters. |
|
|||
|
It's time to reconstruct our original image from the LAB (HSV)
components.
Right-click in the luminosity (value) window and select (Image/Mode/Compose). In the Compose Options dialog, make sure that you have selected LAB (HSV) on the left and on the right that the Luminosity, A and B (Hue, Saturation and Value) components are matched up with their respective images. Click OK; this should create a new composite image. |
|
|||
|
Examine the resulting image, zooming in to examine edge detail.
It may help to unminimize the original image for comparison. If you feel your image needs more/less sharpening, then go back to the LAB window, undo twice and redo the unsharp mask step above. When you are satisfied with the result you can close all the extraneous windows. The images on the right are zoomed to 100% and cropped:
The smart sharpened image hardly shows any additional noise over the original image. Notice how the "regular" unsharp masked version at half the sharpening amount has much more visible noise, especially in the shadows on the side of the face and in the door frame of the car. Check out the shadow noise in the larger images on the smart sharpening shortcuts and variations page. |
|
Here is what you'll see if you compare them:
| Gradient in RGB | RGB->LAB->RGB |
|---|---|
![]() |
![]() |
![]() |
![]() |
Zoomed 400%![]() |
Zoomed 400%![]() |
You are now thinking to yourself, "Good grief! Why on earth would he suggest changing modes to sharpen the luminosity channel if it has this kind of effect?"
Look at the histograms of the original image and the one smart sharpened on the luminosity channel:
| Histogram, original image | Smart-sharpened on luminosity channel |
|---|---|
![]() |
![]() |
You can see that in practice, changing modes does not always have this drastic of an effect.
What should you do? I suggest trying it and look at the histogram! This is the beauty of the digital darkroom. If your image is not that noisy anyway, then no need to change modes, as suggested in the shortcuts. However, this does point out a general piece of advice, which is to use the histogram regularly. It is a great tool to monitor what is happening to your image "numerically" as you edit it.
Original (pretty noisy): ![]() |
Standard unsharp mask: ![]() |
Smart sharpened:
|
|
Edge sharpened (Amt=1.25): ![]() |
Standard unsharp mask (Amt=0.50): ![]() |
Last modified: Mon Jan 26 20:48:21 HST 2004
|
|