Estimate PSF from blurred and unblurred images.

27 views (last 30 days)
I have a blurred image and I want to estimate the Point Spread Function (PSF) that blurred the image. I also have a sharp un-blurred image. I don't need to de-blur the blurred image, I just need the PSF.
Can anyone suggest a function or other method that makes use of the blurred and the sharp image to estimate the PSF?
I've experimented a lot with Matlab's blind deconvolution function as well as a few others like those by Fergus et al. and Prateek Garg, and these do estimate the PSF from the blurred image. But I keep thinking there must be a better way that makes use of the sharp image and perhaps improves performance?
Thank you
  3 Comments
Dan
Dan on 12 Jan 2016
this page may also help out : http://www.mathworks.com/help/matlab/math/systems-of-linear-equations.html#brzoiix scroll down to : Iterative Methods for Solving Systems of Linear Equations
Jihang Wang
Jihang Wang on 2 Jul 2019
Dan, what if I don't know the size of the psf but want to estimate both the size and kernel values?

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 11 Sep 2012
What do the theories tell you?
blurredImage = originalImage * * psf (Convolution)
In the Fourier domain:
blurredImageFT = originalImageFT * psfFT (Multiplication)
so
psfFT = blurredImageFT / originalImageFT
psf = inverseFT(blurredImageFT / originalImageFT)
It's essentially the inverse filter except that you're finding the psf instead of the original image. So code that up and see what happens.
  10 Comments
Image Analyst
Image Analyst on 26 Aug 2020
Start your own, new question after reading this link, and attach your images and script.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!