outCorrectedImg,outNoiseImg = | vsnr2dImg (inImg,nbIter,stdDevX,stdDevY,theta,alpha) |
outCorrectedImg,outNoiseImg = | vsnr2dImg (inImg,noiseImg,nbIter,alpha) |
Variational Stationary Noise Remover.
Standard denoising methods rely on a white noise assumption. This means that the intensity alteration is spatially uncorrelated. The VSNR (Variational Stationary Noise Remover) algorithm removes structural noise, i.e. following a pattern, in the input image [1].
In a generic case, we can express the noisy image as the sum of the clean image
and the noise image
:
In the case of stationary noise can be expressed as the convolution of white noise
with a pattern
:
where is the convolution operator.
In this IPSDK implementation, noise the pattern can be provided as an input image or can be expressed as an oriented Gabor function, by providing the Gabor parameters:
Where are the coordinates after a rotation of
:
This is an example of noie image according to a Gabor pattern
with an orientation of 45° and a white noise
:
The noise image estimation can be estimated by iteratively solving the following optimization problem:
Where is the regularization term.
Please, see [1] for more details.
Here is an example of VSNR filtering result:
[1] Variational algorithms to remove stationary noise. Application to microscopy imaging. J. Fehrenbach, P. Weiss and C. Lorenzo, IEEE Image Processing Vol. 21, Issue 10, pages 4420 - 4430, October (2012)