袁江琛
(無錫城市職業技術學院, 江蘇 無錫 214153)
生活中由于景物運動,攝像設備的抖動,曝光時間過長等原因,拍攝出的照片會出現模糊現象。如何針對模糊圖像進行模糊特征建模以及選擇算法,最大程度復原清晰圖像是有實際意義的。本文利用運動模糊圖像退化及退化模型的建立,重點討論鑒別線型運動模糊特征的算法,以點擴散函數(PSF)建立模糊模型,以及使用維納濾波法還原圖像。并針對維納濾波的不足提出可行的改進方法。
設原始圖像為f(x,y),攝像機與物體的相對速度為v,曝光時間內相對角位移為θ,g(x,y)為實際拍攝的圖像,則有如下關系:

(1)
此處先討論無角度偏移的情況,則上式可簡化為:

(2)
對上式離散化化簡,結果為:
g(x,y)=∑f(x-i,y)/L
(3)
式中,L為像素數。此式表明一副模糊圖可看成由多幅圖像疊加而成。

(4)
對以上矩陣進行傅里葉變換得到:
(5)
由上式可看出h(u,v)與v無關,即為在一列中v的值是相同的。令:
(6)

因為在模糊圖像中存在大量的平行于運動角度的直線軌跡,所以只需要對模糊圖像進行邊緣檢測即可快速地估計出運動角度。而邊緣檢測的基本思想就是針對圖像中灰度有跳躍的地方標記出來,這些軌跡就是圖像邊緣。可使用sobel算子進行邊緣檢測,sobel算子思想為將兩組矩陣與圖像作平面卷積,即可分別得出垂直及水平的灰度差分近似值。

(7)

uSobel=imag;
fori= 2:high- 1
forj= 2:width- 1
Gx= (U(i+1,j-1) + 2*U(i+1,j) +F2(i+1,j+1)) - (U(i-1,j-1) + 2*U(i-1,j) +F2(i-1,j+1));
Gy= (U(i-1,j+1) + 2*U(i,j+1) +F2(i+1,j+1)) - (U(i-1,j-1) + 2*U(i,j-1) +F2(i+1,j-1));
uSobel(i,j) =sqrt(Gx^2 +Gy^2);
end
end
根據邊緣檢測繪制的圖像即可簡易的確定模糊角度。
由上述提出的G(u,v)=H(u,v)F(u,v)+N(x,y)函數可知,在忽略噪聲因素N的時候,對函數逆向運算反卷積運算即可得到近似的原圖。
(8)
但是由上式可以看出,在噪聲不能被忽略并且H較小時,噪聲會被放大,并且由于H存在零點,在這些點處的圖像無法被恢復。從數學上來說,統計誤差函數最小時精度最高,統計誤差可表示如下:
(9)
則通過化簡可以得到:
(10)
從公式中可以看出維納濾波法引入了Sp(u,v)/Sf(u,v)噪信功率比這項。當噪聲為0時維納濾波與逆向濾波等價,當噪聲較大時,通過信噪比抑制復原中對噪聲的放大。
由上述證明過程可以看出,維納濾波法的關鍵在于反卷積運算。Matlab中自帶的deconvwnr函數即部分代碼為:
wnr1 = deconvwnr(blurred, PSF2, 0);
subplot(2,3,1),imshow(wnr1);
title('修復圖像');
其中,PSF函數即為點擴散函數,Blurred為模糊圖像。Matlab中PSF函數有3個參數,分別為模糊類型、模糊尺度和模糊角度。第一個為’motion’類型,即為運動模糊。而后兩者的數值就需要根據上文所說的方法進行測定。

這樣在復原的過程中,邊緣像素的運算會受到權重的影響,防止了因為像素缺失導致的灰度跳躍。但具體矩陣中的權值大小仍有待探索。
對于含噪聲的圖片可以先使用灰度均衡法對圖片先行處理。這種改進方法的基本思想是使含有噪點的圖片的灰度均勻分布,防止在進行反卷積運算時擴大噪聲。
現用r,s表示原始圖像和變換后圖像的灰度值。0表示為黑,1表示為白。設變換函數為s=T(r)且T(r)有以下特點:
(1)在0 (2)在0 由概率論可知,若圖像灰度值的概率密度函數Pr(r)和T(r)已知,則變換后的概率密度函數為: (11) 由均衡化的定義可知Ps(s)=1,則積分后可得: (12) 此公式只針對連續灰度的圖像。對于離散灰度的圖像處理相似。 Matlab中提供了histeq函數進行灰度均衡。但是該函數是針對離散灰度圖像的,對于連續灰度的圖像處理后視覺上會出現色階的跳躍。根據上文的轉換函數和histeq函數編寫了一個新的適用于連續函數的灰度均衡函數,matlab代碼如下: NumPixel=zeros(1,256); fori= 1:height forj= 1:width NumPixel(I(i,j) + 1) =NumPixel(I(i,j) + 1) + 1; end end ProbPixel=zeros(1,256); fori= 1:256 ProbPixel(i) =NumPixel(i) / (height*width* 1.0); end CumuPixel=zeros(1,256); fori= 1:256 ifi== 1 CumuPixel(i) =ProbPixel(i); else CumuPixel(i) =CumuPixel(i- 1) +ProbPixel(i); end end CumuPixel=uint8(255 .*CumuPixel+ 0.5); fori= 1:height forj= 1:width I(i,j) =CumuPixel(I(i,j)); end end 實驗效果如圖1所示。 由前文的討論可知,模糊尺度與模糊角度確定后即可較大程度地復原模糊圖像。在圖2中利用matlab對一副運動模糊圖像的模擬復原。使用前文方法得到原圖模糊尺度約為103px,模糊角度為1.5。 本文建立了針對圖像的模糊過程的模型和復原過程的模型,也針對圖像復原算法的不足進行了優化處理。實驗表明,圖像復原主要圍繞在參數確認和復原濾波兩方面。對于參數確認研究希望能找到一種更加精確確認模糊角度的算法,對于復原濾波方面希望能得出更加智能的算法,能自動檢測到模糊區域。
2.4 算法效果
3 結束語