RGB Noise

Aug 23 2005

One of the very common tasks a digital photographer undergoes is removing noise. While there is a plentitude of methods, the one I have been using with GIMP most often is Selective Gaussian Blur. Unless the grain contrast is too high, keeping the blur radius low and the delta value approximately the same value gives a decent result without losing too much detail. The process is quite CPU intensive however and for large batches of my six megapixel images it can take a while.


Selective Gaussian Blur isn’t the only “smart” blur filter for GIMP that tries to keep edges inctact. Browsing through the registry resulted in another gem

  • DCam Noise by Peter Heckert. Tweaking the parameters is only for the brave, so apart from the Max. Radius I found Luminance and Color Tolerance worth exprimenting with. The major issue I had with Selective Gaussian Blur still remains though. It’s quite CPU intensive.

What I need is a quick little hack to fix the most annoying aspect of CCD noise. I don’t mind even a rough ISO 1600 noise as long as it’s uniform across the RGB channels. Well it isn’t :) Each channel seems to have a “different seed” for the noise making it really unpleasing to look at on homogenous surfaces.


There appears to be a simple trick to get rid of this issue - creating a copy of the image and applying a median filter on the copy. Then the overlay mode is set to only affect the color, preserving the luminosity information from the layer below. In GIMP, we have the Despecle filter, but I have been unable to get rid of the independent RGB noise in most cases. Of course applying selective gaussian blur works great, but then we’re losing the key point of this process - speed. If the noise varies only slightly a simple gaussian blur works ok as the eye is much more sensitive to luminosity than color.

So to end up this entry in a typical manner - if you have found a neat and fast way to get rid of the RGB channel independent noise, I’m eager to hear your tips.