Reconstructing image by inverse filter issue in MATLAB -
i used transfer function 'motion' imnoise
in spatial domain. try deconvolve in frequency domain not working!! codes here:
clc close clear display('welcome wiener , invert reconstruction image ...'); path = input('enter pictures path:','s'); info=imfinfo(path); resolution=info.width*info.height; i=imread(path); if strcmpi(info.colortype,'truecolor') i=rgb2gray(i); end psf=fspecial('motion',70,45); f=imfilter(single(i),psf); %f=imnoise(f,'gaussian',0,0.001); %invert filtering pq=paddingsize([info.height info.width],'pwr'); f=fft2( single(f) ,pq(1),pq(2) ); psf=fft2( psf ,pq(1),pq(2) ); fhat=f./psf; fhat=ifft2(fhat); imshow(fhat(1:info.height,1:info.width));
the codes correct there noise amplification . more detail at: http://blogs.mathworks.com/steve/2007/08/13/image-deblurring-introduction/
Comments
Post a Comment