processing image with deconvolution.

Hi..
Image after applying unsharp filter: http://tinypic.com/r/14bib77/6
EDIT DES: Embedded correct filtered figure (despite being ugly)
Currently working with deblurring a image and Not satisfied with result obtained using unsharp filter.
So, thought to go with deconvolution process for a better result. How to find PSF of image ?

Answers (1)

Image Analyst
Image Analyst on 17 May 2012
What do you want to do? I imagine deblurring is just one step in what you really want to accomplish. How about focusing your camera to avoid blurring in the first place. While you're at it, reduce the exposure. Those two steps should get you a better image of the disc to begin with and it's always better to fix problems on acquisition than afterwards. MATLAB does have a Lucy-Richardson deconvolution - check the demos/examples online or in the help.

7 Comments

Yes, IA to work with Lucy-Richardson deconvolution we need the PSF of image and how to calculate it from the Image?
You can either guess or measure it. From the help for "Deblurring with the Blind Deconvolution Algorithm": "
To determine the size of the PSF, examine the blurred image and measure the width of a blur (in pixels) around an obviously sharp object. In the sample blurred image, you can measure the blur near the contour of the man's sleeve. Because the size of the PSF is more important than the values it contains, you can typically specify an array of 1's as the initial PSF.
The following figure shows a restoration where the initial guess at the PSF is the same size as the PSF that caused the blur. In a real application, you might need to rerun deconvblind, experimenting with PSFs of different sizes, until you achieve a satisfactory result. The restored PSF returned by each deconvolution can also provide valuable hints at the optimal PSF size. See the Image Processing Toolbox deblurring demos for an example."
Hi.."IA" as you suggested I worked out with ''blind deconvolution''as follows, but there was no improvement in the image
I=imread('L3S3T1.jpg');
K=rgb2gray(I);
INITPSF=ones(15:15);
[J P]= deconvblind(K,INITPSF,50);
imshow(J); http://tinypic.com/r/5kiltv/6
? I do not see any sleeve in the images ?
Sorry,What does ''sleeve in the images'' mean?
Tricky, Sorry that you did not follow my suggestion and look up the help item I referred you to: From the help for "Deblurring with the Blind Deconvolution Algorithm" If you had, you would have seen "sleeve." Note that when I said "From the help....." and then put double quotes around it, that indicates that it is a direct quote from the help. In other words, I copied and pasted from the help. You can get there by searching for deblurring and clicking on the first item you see, or else navigate there like this Image Processing Toolbox => User's Guide => Image Deblurring => Deblurring with the Blind Deconvolution Algorithm.
Using Deblurring with the Blind Deconvolution :
''INITPSF is calculated by seeing the width of blur in pixels and was 20 pixels in a row =>INITPSF = ones(20:20)''; and gave the results like this
clc;
clear all;
i=imread('L3S3T1.jpg');
i=rgb2gray(i);
INITPSF = ones(20:20);
[J P]= deconvblind(i,INITPSF);
figure(1),subplot(2,2,1); imshow(J),title('Restored Image');
figure(1),subplot(2,2,2);imshow(P,[],'InitialMagnification','fit'),title('Restored PSF');
WEIGHT = edge(i,'sobel',.3);
se = strel('disk',2);
WEIGHT = 1-double(imdilate(WEIGHT,se));
WEIGHT([1:3 end-[0:2]],:) = 0;
WEIGHT(:,[1:3 end-[0:2]]) = 0;
figure(1),subplot(2,2,3);imshow(WEIGHT);title('Weight array');
result image: http://tinypic.com/r/2lo3n1y/6
I was unable to continue forward with this results.How to improve the results ?

Sign in to comment.

Products

Asked:

on 17 May 2012

Community Treasure Hunt

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

Start Hunting!