image = | richardsonLucyDeblur2dImg (inImg,inNbIter,inStdDev) |
image = | richardsonLucyDeblur2dImg (inImg,inNbIter,inStdDevX,inStdDevY,inOptSmoothingGaussianCoverage) |
2d image deblur algorithm using Laplacian kernels based on the Richardson-Lucy algorithm
Two dimensional image deblur algorithm based on the Richardson-Lucy algorithm.
This is an iterative algorithm wich can be described as follows :
Where is the calculated image at the iteration
,
and
is the blur filter (PSF). It is assumed that the PSF is a Gaussian filter. Thus, it is possible to specify the parameters of the Gaussian (see Gaussian Smoothing 2d for more details).
Defining more than 10 iterations does not provide an interesting ratio between edge-enhancement and calculation time.
Here is an example of a deblurring operation applied to two 8-bits different images:
(second image by Ru_dagon (Own work) [GFDL (http://www.gnu.org/copyLeft/fdl.html), CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/ ), via Wikimedia Commons])