I'm having troubles trying to use one relatively simple noise estimation method, here it is:A Fast Method For Image Noise Estimation Using Laplacian Operator and Adaptive Edge Detection

My problem is with their proposed noise deviation formula (page $2$, ($3$)), I can't seem to comprehend it. What I want to know am I right that this $N$ is amount of pixels in image?

And also I'm having troubles implementing first part of the formula since its result is float undeflow. Maybe I can just use regular pixel_value - pixel_mean formula? Will it produce same results?

Altrough images with massive noise will have mean that actually pretty much depends on the noise amount and thus estimation will be considerably lower than the real value.

Where can I read about this formula and how to use, or how it's even named?

Maybe I've implemented it wrongly, here's my code that does it: noise deviation implementation (C++ CImg) It gives me very big numbers, like for noisy image of bears I got something like 1830152.

First of all, what I'm supposed to get from that formula? Isn't it supposed to be some kind of 0.xx coefficient or maybe percent of noise in image?

  • $\begingroup$ Please ask the moderators to migrate this question to dsp.SE where it is a more natural fit. You can contact them via the flag link below your posting. $\endgroup$ Jan 14, 2013 at 13:00

1 Answer 1


I can answer the first part of your question: Where formula 2(3) comes from.

Since the noise model is Laplacian, you are looking at an estimate of the standard deviation of a Laplace distribution. Compare the moments equation on this Wikipedia page: http://en.wikipedia.org/wiki/Laplace_distribution#Moments

As for what N is, it looks like they define it as a matrix operator in 2(2). So the sum in 2(3) is taken over pixels of an image generated by convolving the original image I(x,y) with the Laplacian operator N (which is denoted by $I(x,y)*N$, where $*$ is the convolution operator).


Your Answer

