| image = | richardsonLucyDeconvolution2dImg (inRealImg,inKnlXY,nbIter) |
| image = | richardsonLucyDeconvolution2dImg (inRealImg,inKnlXY,nbIter,bStaturateImg) |
| image = | richardsonLucyDeconvolution2dImg (inRealImg,inKnlXY,nbIter,epsilonValue) |
| image = | richardsonLucyDeconvolution2dImg (inRealImg,inKnlXY,nbIter,epsilonValue,bStaturateImg) |
Richardson-Lucy deconvolution algorithm.
This algorithm removes iteratively blur from an image according to a given point spread function. The implementation is inspired from https://scikit-image.org/docs/dev/api/skimage.restoration.html#skimage.restoration.richardson_lucy.
For a given iteration
, the deconvolution result is given by :
Where
is the deconvolved image at iteration
,
is the input PSF,
is the flipped (mirrored along every directions) PSF and
is the convolution operator.
Contrary to Richardson-Lucy deblur 2d, the input PSF is an IPSDK kernel, which offers more flexibility. It is also possible to define an epsilon value to determine from which value
is considered as 0. In that case,
is set to 0. Finally, by saturating the output image, all values below -1 and higher than 1 are saturated in the range [-1, 1].
Here is a result of Richardson-Lucy deconvolution with 20 iterations a 15x15 mean kernel: