Removing Dark Noise with The GIMP

Giving credit where credit is due: I did not come up with this method. I adapted it for The GIMP from this site see also this site.

The Procedure

Here is a 60-second exposure of lava entering the ocean on the Big Island of Hawai’i from Kilauea volcano.Look at the zoomed in image at 100% below. No, that’s not flying lava…it’s hot pixels!
Create a new layer, call it “Dark Frame”. You can fill it with anything.
Open the dark frame image in a separate window.Here you can really see the hot pixels in the zoomed in view. Because this exposure was taken (with the lens cap on) immediately after the main exposure, and using the same exposure settings, the ambient temerature of the CCD sensor should be about the same and the hot pixels (dark current noise) should be more-or-less the same as in the previous image.
Select All (Ctrl+A) and Copy (Ctrl+C) in the dark frame image. Go to the original image with the new layer and Paste (Ctrl+V) it into the “Dark Frame” layer.In the Layers dialog, set the Blend mode to “Difference” and adjust the layer Opacity to suit (100% for this example). At this point you should see black specks instead of hot pixels; these occur where the hot pixels from each image cancel each other out.

(Optional) Duplicate (Ctrl+D) the resulting image at this point to have a backup and branch point for fine-tuning the final result.

Flatten (Layers/Flatten) the duplicate image.Run Filters/Enhance/Despeckle. In this example I used both the Adaptive and Recursive options with a 3 pixel radius. This should remove the black specks.

Notice the silky tones now! Hardly a trace of those pesky hot pixels.

(Optional) Add some noise back to the image, if desired.Unfortunately, the Despeckle filter does degrade the image in subtle and sometimes not-so-subtle ways. In this case some posterization occurred in the orange-red smoke and steam clouds.

In this example I used Filters/Noise/Noisify with a value of 0.06 on all channels to add some texture back into the clouds.

(Optional) If you add noise, you may also want to blur slightly to smooth it.Here I blurred very slightly to smooth the added noise.

(Optional) Smart sharpen the image to counteract the softening due to the Despeckle and subsequent blur, if desired. With this image there weren’t any real defined edges to sharpen, so I skipped this step, but for any image with edge detail I would do it.

Compare. Top right, original zoomed. Bottom right, processed as described here.


  • Obviously, you need to have the camera mounted on a tripod!
  • The exposures for the main image and dark frame need to be the same, as much as possible. This usually means (for me) shooting in manual mode. In this example I used:
    • Shutter speed: locked on “Bulb”, each exposure was timed for 60 seconds.
    • ISO: locked at 100.
    • Aperture: locked at f3.5.
    • White balance: locked on “Cloudy” (mistake, should have been Fine (daylight), but at least it was locked).

    Focus was locked at infinity with a focal length of f18.8mm.

  • For best results, when taking both the main photograph as well as the dark frame:
    1. Turn off in-camera sharpening;
    2. Shoot in TIFF or other lossless compression mode;

    This will help insure that the hot pixels are consistent in both the main exposure and the dark frame. However, I should note here that for the example image in this tutorial I did not turn off in-camera sharpening and the image was a JPEG, but the results are still pretty decent!

Further Reading on Reducing Noise

1 Comment »

  1. […] one wher ethe noise matched most closely. Even if you just shoot JPEG, you can use this trick: here is a Gimp tutorial on the subject. If you didn't shoot at least one dark frame, then you're going […]

    Pingback by Long Shtr NR - off, what to do on PC? - Micro Four Thirds User Forum — November 10, 2010 @ 3:13 am

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Blog at

%d bloggers like this: