Aim and Results

If your images are corrupted by a strong dominant Gaussian noise you can try this simple filter. It is usually vastly superior to Gaussian filtering in term of detail preservation / noise reduction trade-off. The filter unfortunately introduces some block like artifacts that can be mitigated by averaging out overlapping shifted windows (as implemented in the Matlab version). The function can batch process a folder of images (3D stack, time-lapse...).

Original 3D stack time-lapse

Maximum intensity projection, single time frame, saturated contrast

Filtered 3D stack time-lapse

Maximum intensity projection, single T frame , saturated contrast


Download the code archive and unzip it to an empty folder. Store all the image files to be processed in a different folder.


From Matlab console change the current path to the folder where you copied the Matlab files. Call the filter by substituting the parameters by numerical values from this call:


1) WinSize is typically set to 32 for 512x512 images (must be a power of two).

2) Step is typically set to 4 (must be a power of two smaller than WinSize).

3) mode should be set to 1 (results are typically better than for mode 0).

4) Thresh is typically in range [0.025 0.075] for mode 1, the higher the stronger the filtering.

5) KnownStdNoise (not necessary for mode 1).