This thread was linked in a current thread so I am bringing up my 2 bits years later.
Hi Arthur,
The thread is as relevant today as it was when it was started. No problem with people adding to it. RawTherapee just a few days ago improved the speed of its RL sharpening implementation, and FocusMagic is beta testing the long overdue 64-bit version of their plugin. So the subject is very much alive.
I have been using deconvolution for years. Sometimes in an image I can find something that lets me use the custom PSF function in images plus. When this happens a single cycle of deconvolution dramatically improves the image blur. Further cycles using that PSF actually dont work better than a regular function like a gaussian for the obvious reason that that PSF no longer matches the state of the image. To really use a good custom you have to modify it each cycle as the image is improving.
That depends on the algorithm used, but in particular the Richardson-Lucy deconvolution is an iterative algorithm that internally iterates to optimize certain parameters.
It's not simply a repetition of the same deconvolution with the same PSF.
To demonstrate that multiple iterations do serve a purpose, especially with a low noise image, I've created the following example:
Here is the test target that was used for the following demonstration:
Here is the sigma=1.0 PSF that was used to convolve (blur) the image, and then deconvolve the blurred 'star' version.
Click on the image to get a higher accuracy 32-bit floating point TIFF version of the PSF
Here is the convolution result:
Here is a RL deconvolution result after 10 iterations, resolution has improved:
Here is a RL deconvolution result after 100 iterations, it has better resolution:
Here is a RL deconvolution result after 1000 iterations, it has even better resolution, however not all resolution could be restored.
When the blur reduces the image detail to zero contrast, then all is lost:
The RL implementation used was from PixInsight Version 1.8, and I used the unregularized RL version, because there was no noise in this artificial (CGI) image.
My rule of thumb is if I cant do it with 50 cycles I am using the wrong function. Usually I just use 10 cycles. Sometimes less, I have images where I stop after 3 cycles of a 3x3 gauss, the lightest the program runs.
Often, 10 or 20 iterations are plenty, especially with some noise in the image and a less than perfect PSF (which is the common situation). I do see a benefit in 'rolling your own PSF', because it allows to make more accurate versions than the few default ones that many programs offer. Since Gaussian shaped PSFs are often close to ideal, my
PSF generator tool can assist in producing a number of PSFs to choose from. The numerical data can be copied and pasted into a text file, which e.g. ImageJ can import as a space separated text image file, for those applications that take a PSF image as input. Others will need to copy and paste the data into dialog boxes.
Cheers,
Bart