I would think that some of the links provided by Googling "deconvolution" + "point spread function" + "IDL" would lead you to useful third party freeware IDL libraries. The following link looked particularly promising:
http://www.astro.washingt...y22.html?DECONV_TOOL
This is the general algorithm that I have used successfully [but just once!] for deconvolution with a point-spread function:
1) Take the FFT of the original image.
2) Import or create the point spread function (PSF) array.
3) Take the FFT of the PSF.
4) Normalize the FFT of the PSF to a range of 0.0 to 1.0.
5) In the normalizedFFTofPSF eliminate all values near 0. Set all values between -0.0001 and +0.0001 to +0.00001.
6) Divide the FFT of the image by this modified 'normalizedFFTofPSF. This produces what might be called a PSF-dampened FFT of the original image.
7) Create a low-pass filter for the result of 6. I have used the equation:
filter = 1 / (1 + (dist(m, n) / cutoff) ^ (2 * order))
where 'm' is the image width, 'n' the image height, 'cutoff' is a value that corresponds to the distance from the origin where the absolute value of normalizedFFTofPSF first nears 0 ( you can determine this with a plot of ABS(normalizedFFTofPSF) ) and order is a relatively high value for filtering (I ended up using 6.0 in my experimentaton).
8) Multiply the 'psfDampenedFFTofImage' by the filter created in step 7
9) Reverse transform the result to obtain the deconvolved image. The formula for that is:
deconvolvedImage = shift( abs(fft(filteredPSFdampenedFFTofImage, 1)), m/2, n/2)
I wonder what clever mathematician first figured out this image sharpening approach?
James Jones