MATLAB中PSF函式進行影象復原
阿新 • • 發佈:2019-01-08
今天來介紹一下在MATLAB中如何用真實的PSF函式和噪聲強度作為引數進行影象復原,具體如下:
1、首先開啟MATLAB,在其主介面的編輯器中寫入下列程式碼:
I=imread('G:\MATLAB\bm.bmp'); %讀取原始影象 LEN=31; %影象的模糊化 THETA=11; PSF1=fspecial('motion',LEN,THETA); PSF2=fspecial('gaussian',10,5); Blurred1=imfilter(I,PSF1,'circular','conv'); Blurred2=imfilter(I,PSF2,'conv'); %模糊化影象加噪 V=.002; BlurredNoisy1=imnoise(Blurred1,'gaussian',0,V); BlurredNoisy2=imnoise(Blurred2,'gaussian',0,V); figure, subplot(1,3,1);imshow(I) title(' yunhe ') %用真實的PSF函式和噪聲強度作為引數進行影象復原 NP=V*prod(size(I)); reg1=deconvreg(BlurredNoisy1,PSF1,NP); reg2=deconvreg(BlurredNoisy2,PSF2,NP); figure; subplot(1,3,2);imshow(reg1); title('Restored1 with NP') figure; subplot(1,3,3) ;imshow(reg2); title('Restored2 with NP')
2、將程式碼儲存在自定義路徑下,點選執行按鈕,結果如下:
從圖中可以看出,影象復原後還是帶有一些噪聲,但是基本樣貌還是類似的,至此,關於用真實的PSF函式和噪聲強度作為引數進行影象復原的基本介紹完畢,請大家繼續關注!!