# Signal amplification when summing low SNR images

I'm trying to add up a few black & white images of the same object in order to amplify the SNR. I'm working on relatively low SNR images (about 1.1) and I wish to amplify it somehow.

My first try was to add up the images grey-levels while removing the noise through a simple threshold but this isn't really working since this threshold isn't quite well defined.

Are there any known algorithms for this kind of task? If so is there any pseudocode or even open source code somewhere?

Are the images properly aligned? Then you can usually add them all up and (for normalization) divide each pixel value by the amount of images that were added together. For $N$ images this will give you an SNR gain of

$$SNR_{+} = 10\cdot \log_{10}(N) \text{dB.}$$

This is under the assumption that the "signal" part of the images is always the same and that the noise in each image has the same power and is perfectly independent from the noise in other images. Hence, it is probably an upper bound on what you are actually going to achieve.

If the noise is independant from the signal and your images are well-aligned, you can simply average your images. Very basic probability arguments show that averaging $N$ samples of a variable $y = x + n$ (where $x$ is the true value and $n$ the independant noise) yields a noise variance reduction equal to $\sqrt{N}$ and thus improves the SNR.

This way, you avoid any threshold and already get better images. They may look blurred if the noise is strong or if the images are misaligned, so additional processing steps might be required.

An alternative to using an averaging operation is to stack all your images, then choose as denoised pixel value the median of the given pixel in the stack (i.e., among all the observations). This technique handles better salt-and-pepper shaped noises than the previous one and remains simple to implement.