Noise happens, but it can be fixed (to a degree). As a photographer when taking a shot, if you have to choose between high ISO, or using a slow shutter speed you should choose high ISO. This way you will get a sharp shot with some noise that can be cleaned up. If you try to artificially keep the ISO down, you will just end up with a blurry shot (camera shake) that can't be fixed in any kind of reasonable way.
The shot I'm going to use to demonstrate was shot with a 35mm lens at ISO1600 with f/4 and 1/40, so I'm actually below the 1/FL x Crop rule, probably wanted minimum of 1/60, and that was even underexposed by half a stop. There will be noise! In DPP I pushed it up half a stop, exported to 8bit TIFF.
GIMP has some basic noise removal tools, and you can do some funky layer/mask/channel/edge/blur/fade stuff too, but for this we are going to use a plugin, thats fast simple and effective. Go to registry.gimp.org to find plugins, or google for them. The plugin we want is called Wavelet DeNoise. Type noise in the search box on registry.gimp.org and it should be near the top of the list (2nd as i write this).
Its on this link at the moment >> http://registry.gimp.org/node/4235 current windows version is 0.2, Linux version is 0.3. I'm using 0.2 in this example.
On that page you can see an example of what it can do and what it looks like. For plugins/scripts for any kind of effect registry.gimp.org is the place to go. If you write any scripts or plugins that you think people would find useful you can upload them there also.
Go to the bottom of that page and download the .zip file if your using windows. Its only 135Kb so it should download instantly even on 56k connections!
Extract the .zip file. The only file inside we are interested in is called wavelet-denoise.exe. Make sure GIMP is not running. If you are running Windows XP copy this file to
C:\Documents and Settings\YOUR LOGIN NAME HERE\.gimp\plugin\
Or if you are running Vista
C:\Users\YOUR LOGIN NAME HERE\.gimp\plugin\
Obviously if you name is Joe Bloggs replace YOUR LOGIN NAME HERE with Joe Bloggs.
Next time you open up GIMP it will find this file and enable the wavelet plugin. We put this in your user folder so only you can use it. If you share your PC and more than one person wants to use the plugin simply put it in the plugin folder at the location GIMP is installed usually
If you reinstall GIMP the files you add to these folders will not be deleted so you won't have to reinstall your plugins.
Test it works, open up GIMP go to the Filter >> Enhance, now "Wavelet denoise" should be an option at the end of the list, if you don't have this option you put it in the wrong place, don't worry just go back and try again. It won't do any harm in the wrong place it will just be ignored.
Lets Denoise that TIFF we export from DPP!
1: Open the TIFF, the import from TIFF window will appear. Select page 1 and hit import (Note: page 1 is the image, page 2 is the thumbnail version of the image).
2: Filters >> Enhance >> Wavelet De-noise. You will see a preview window and the preview will probably be black and white, don't worry about this, its normal. We have 2 colour modes in version 0.2 YCbCr (default) and RGB. We are going to work in YCbCr mode. Which is a way of encoding RGB data, the conversion from RGB to YCbCr and back is totally lossless.
3: In either colour mode we can select any of the 3 channels Y, Cb, Cr and apply a separate amount of noise reduction and specify how much detail we want to keep versus how much noise reduction we want. Select channel Y, it will look like a black and white version of your image, this is luma info represented in grayscale, Cb and Cr probably look vaguely like your image they are chroma data.
Think of Y as grain noise, and Cb and Cr as colour noise. By treating them separately we can denoise without distorting colour. With channel Y selected move the "Amount" slider until the noise disappears from your preview image, some of the detail will soften up also, but don't worry about that we will bring it back later. For my image the amount of 2000 seemed about right. After 2000 very little was changing. You can turn the preview on and off, and also change preview mode. I could see in the preview mode (gray) that 2000 was killing the grain, in preview mode (all) I could see some different noise (red and green blobs) existed, but these are not in the Y channel so lets not worry about them yet.
4: At 2000 amount almost all grain noise was going, and almost no detail was lost, but you can choose to up the detail slider. I put the preview mode on all and settled on a detail amount of 1.4.
5: Chroma noise was still present in the All preview, so I switched channel to Cb, and repeated the steps above (up amount, checking gray and all preview, then up detail, checking gray and all preview. I settled on 7500, 1 for Cb and 2000, 1 for Cr. Pushing Chroma too hard can reduce contrast slightly and desaturate color slightly, but these are easy to bring back later so don't worry about it too much.
6: What next? Well you really should not have lost much detail/contrast/saturation but now is as good a time as any to adjust them. You can go to colour >> brightness and contrast. I added 5 to contrast. Next I went to Colour >> Hue-Saturation, clicked Master and upped saturation by 15.
7: We have gone this far so we may as well finish the image off. It looks a bit flat to me so lets go to Colors >> Levels. I have not explained this to you yet so lets cheat and hit the auto button and hit ok. Finally Sharpen, High Pass may be a better option than USM here as we don't want to bring back the noise we spent time removing, but try whatever suit you. For me Radius 7, Amount 0.3, Threshold 10 suited, but I choose not to apply it so you could see the crops without sharpening.
YCbCr works great with high ISO noise, RGB mode works great with long exposure noise, both operate in the same way, but with YCbCr you can separate detail noise, and colour noise. In RGB mode all channels contain both colour and detail so you need to be a bit more precise. As is normal wavelet will obey any masks/selections you have setup, so you can mask out areas you want to target/ignore before you start if you wish. Most of the time noise is fairly consistant so this is not a must do.
Wavelet is hugely effective, easy to use and very flexible and fast but its not the only show in town. Other plugins are available and all are free so you can mix and match. Another plugin that can get great results with noise is called GreyCStoration. Its vastly more complex to use and predict its results. Its also slower, wavelet can do a complex image in 15 seconds on modest machine, GREYCstoration would usually take 70+ seconds. But I use both of them 95% of the time Wavelet is enough, for the other 5% its GREYCstoration or live with the noise.
We could have pushed this image much harder the amount of Noise Reduction goes from 0-10000. Detail starts at 1.00 and goes from 0.00 to 2.00. But this is enough for our example.
The Image, before and after
|HTTP response: NOT FOUND | MIME changed to 'image/gif' | Redirected to error image by FLICKR|