Monday, February 27, 2012

Dealing with noise in an image


Unless you have the freedom and budget to work with highly sensitive scientific cameras, your images will contain some noise.

Don’t believe me? Then get a live image – at a low frame rate - and watch the gray value of a single pixel. It will bounce up and down, by just two or three levels if you’re lucky, and by five or more if you’re not.

Depending on your application, this may or may not be an issue. What you may see though is that edge detection tools report a slightly varying position for the edge, especially if you’re using just a single row or column of pixels. (This used to be very evident on the old DVT smart cameras.) So what to do?

Well one approach I’ve been exploring is to apply a filter to smooth the image. As I showed in “Better measurements from a worse image?” that seemed to do the job, but I wondered if there might be other approaches. “What,” I pondered, “if I averaged a series of images?”

Well my good friend Google showed me that I was not the first to think of this. (I never am.) Interestingly, it seems that photographers have been the ones to pursue the averaging approach to noise reduction, as shown in “Noise Reduction by Image Averaging” on the “Cambridge in Colour” website.

The Cambridge site suggested some downloads that would perform averaging, but I’m pretty sure I could do it myself, so check back soon to see how I get on.

1 comment:

Jon Vickers said...

A lot of AVT firewire cameras will let you do this inside the camera - they call it High SNR mode - and you get a choice of 2 or many more images to average (up to 256 on my Stingray F146C). Obviously the frame-rate suffers, but you get something like a sqrt(n) reduction in random noise - i.e. the SNR increases (pretty much) as sqrt(n).