Blind deconvolution of an image blur due to motion, no improvement seen, what can be changed?

6 次查看(过去 30 天)
HI I am trying to do a simple deblurring of a PET scan (poitron emission tomography) due to breathing motion of the patient. I dont have the blurring kernel for so I have made an estimate that the motion is in one direction and its about 10 mm. I also dont have the original image. The code I wrote creates a filter (using the estimated PSF), and applies this to the blurred image, and then using blind deconvolution I deblur the image. I created a blur kernel using fspecial function, as you see bellow, and I chose 3.3 for the length of the motion since I am assuming a motion of 10mm, and the pixel size is 3 mm. PSF = fspecial('motion',3.3,0);
Unfortunately it seems like my method is not doing much deblurring of the image (when compared to the actual image). I also tried more iterations, but this didnt help much. bellow I have attached the code that I wrote. Could you maybe let me know if there is any way I can improve my code to get a better restored image?or if there is a better approach for doing this. Many Thanks.
{[fn pn] = uigetfile(ExtensionName,TitleName, DirectoryName);
filename = strcat(pn, fn);
pt = analyze75read(filename);
figure(1);
subplot(2,3,1);
imagesc(pt(:,:,100)); title('Original Image');
hold on
%fspecial('motion',LEN,Theta), LEN is in pixels
PSF = fspecial('motion',3.3,0);
figure(2);
subplot(1,2,1);
imshow(PSF,[],'InitialMagnification','fit'); title('Original PSF')
hold on
Blurred = imfilter(pt,PSF,'replicate','conv');
figure(1);
subplot(2,3,2);
imagesc(Blurred(:,:,100)); title('Blurred Image');
hold on
INITPSF = ones(size(PSF));
[J P] = deconvblind(Blurred,INITPSF,5);
figure(1);
subplot(2,3,4);
imagesc(J(:,:,100)); title('Restored Image');
figure(2);
subplot(1,2,2);
imshow(P,[],'InitialMagnification','fit'); title('Restored PSF');
figure(2);
difference = pt-J;
figure(3),imshow(difference(:,:,100));}
you can see the result of my 7 iterations compared to the original image when you click this link , as you see there doesnt seem to be much improvement. </matlabcentral/answers/uploaded_files/49807/diff_iterations.JPG>

回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by