張金鳳,劉 昕
(西安理工大學(xué) 印刷包裝與數(shù)字媒體學(xué)院,陜西 西安 710048)
印刷出的圖像通過掃描設(shè)備以數(shù)字圖像的形式在計算機(jī)中存儲,對印刷圖像邊緣的檢測實際上是將數(shù)字圖像的目標(biāo)區(qū)域與背景區(qū)域區(qū)分開。圖像邊緣檢測算子有很多,根據(jù)計算邊緣導(dǎo)函數(shù)類型的不同,可以將邊緣檢測算子分為一階導(dǎo)函數(shù)和二階導(dǎo)函數(shù)兩類。通常情況下,一階導(dǎo)函數(shù)對邊緣定位速度快且節(jié)約檢測時間,二階導(dǎo)函數(shù)相對復(fù)雜,實驗中針對一階算子進(jìn)行了重點研究。Sobel邊緣檢測算子以一階導(dǎo)函數(shù)為基礎(chǔ),因計算簡單、速度快而被廣泛應(yīng)用,但是此算法存在漏檢邊緣、抗噪能力低、邊緣線條較粗糙等問題,只能滿足精度不高的檢測需求。國內(nèi)外研究者針對圖像邊緣檢測做了許多研究,文獻(xiàn)[1]在傳統(tǒng)Sobel算法的基礎(chǔ)上改進(jìn)為8方向的5×5檢測模板,增強(qiáng)了算法的抗噪性,但計算時間較長,導(dǎo)致邊緣線條較粗糙。文獻(xiàn)[2]提出采用擊中擊不中變換的優(yōu)化邊緣提取算法,雖然能避免圖像的漏檢,但在消除圖像偽邊緣的同時也造成了圖像細(xì)節(jié)的丟失。文獻(xiàn)[3]引入數(shù)學(xué)形態(tài)學(xué)模型,提出一種基于形態(tài)學(xué)中高低帽變換預(yù)處理后再進(jìn)行迭代分割的改進(jìn)優(yōu)化算法,此優(yōu)化算法計算時間長且運行程序過于復(fù)雜,而且需要特定的圖像,并不具有魯棒性特點。
傳統(tǒng)的Sobel算子[4-5]主要對0°與180°的水平方向和90°與270°的垂直方向上的邊緣信息比較敏感,容易檢測到邊緣信息。這樣會導(dǎo)致圖像的其他方向因為檢測方向的限制而丟失圖像邊緣檢測的信息。Sobel是一階導(dǎo)函數(shù)圖像邊緣檢測算子,也稱為梯度邊緣算子[6],它是通過圖像邊緣梯度在圖像的邊緣取得極大值來進(jìn)行檢測的。梯度I是一個矢量,它具有方向θ和模|ΔI|,由式(1)、(2)、(3)可以分別求出ΔI、|ΔI|、θ值。
(1)
(2)
θ=arctan(Iy/Ix)
(3)
圖像邊緣梯度中的|ΔI|表示圖像邊緣的強(qiáng)弱信息,|ΔI|值越大,表示是圖像邊緣信息的可能性越大,反之則越小。θ值表示梯度的方向,梯度的方向自始至終是與邊緣的方向垂直的。在應(yīng)用編程語言對圖像邊緣進(jìn)行檢測時,通常用有限差分[7]來計算邊緣信息:
(4)
(5)
式中:h表示接近圖像邊緣的距離;△x和△y表示像素點的距離在0~1之間的增量。
圖1 3×3像素模板和梯度方向表示
如圖1所示,3×3像素模板中心像元(即中心像素點(i,j))的梯度為:
(6)
(7)
式中:Mx、My分別為水平方向和垂直方向模板計算公式;c為中心像元權(quán)值;a0~a7為中心像元周圍的像素。
當(dāng)c=2時,便得到傳統(tǒng)的Sobel邊緣檢測模板:
在1.1節(jié)中對傳統(tǒng)的Sobel算子模板生成原理進(jìn)行了分析,也是在此基礎(chǔ)上對其進(jìn)行改進(jìn),加入45°與225°方向和135°與315°方向的兩個模板。新添加的模板分別用m45°和m135°表示。這樣的改進(jìn)措施其改進(jìn)原理是在水平和垂直方向檢測的基礎(chǔ)上擴(kuò)大了檢測的方向范圍,因而對圖像的檢測更加精準(zhǔn)。
(8)
(9)
根據(jù)圖像檢測中其檢測方向的對稱性,將0°~360°梯度方向角歸并成四個方向,如圖2所示:0°與180°方向、45°與225°方向、90°與270°方向、135°與315°方向。其他方向以此類推,都可以找到相應(yīng)的對稱方向。
圖2 算子方向
用算法對圖像的邊緣進(jìn)行提取,提取到的邊緣會有兩類,即真邊緣和假邊緣[8]。在圖像的邊緣檢測中,應(yīng)用傳統(tǒng)的檢測算子時假邊緣的出現(xiàn)是無法避免的,這就需要對現(xiàn)有算子進(jìn)行改進(jìn),以此來消除假邊緣效應(yīng)的存在。將形態(tài)學(xué)算子加入改進(jìn)后的Sobel算子中,不僅消除了假邊緣,而且還使圖像的邊緣細(xì)節(jié)更加完整。形如f(x,y)和b(x,y)的圖像函數(shù),f(x,y)為輸入圖像,b(x,y)為結(jié)構(gòu)元素。
1)膨脹運算:
(f⊕b)(s,t)=max{f(s-x,t-y)+
b(x,y)|(s-x,t-y)∈Df,(x,y)∈Db}
(10)
式中:Df和Db分別為f和b的定義域。
2)腐蝕運算:
(fΘb)(s,t)=min{f(s+x,t+y)-
b(x,y)|(s+x,t+y)∈Df,(x,y)∈Db}
(11)
3)開運算:
f°b=(fΘb)⊕b
(12)
4)閉運算:
f·b=(f⊕b)Θb
(13)
膨脹運算的作用是對圖像的邊緣未連接部分進(jìn)行連接,使圖像的邊緣顯現(xiàn)出更多。腐蝕運算的作用是盡可能的對圖像的邊緣進(jìn)行收縮,消除假邊緣現(xiàn)象的存在。雖然膨脹腐蝕運算能使邊緣進(jìn)行有效的連接,但同時也可能改變邊緣的信息,而開閉運算正好能彌補(bǔ)其不足之處,同時還具有其相應(yīng)的優(yōu)點。
5)高低帽變換:
高低帽變換是由式(10)~(13)幾種算子組合而成的,高帽變換可以突出圖像細(xì)節(jié),低帽變換可以突出相連接目標(biāo)間的界限。在改進(jìn)的Sobel邊緣檢測圖像上加上高帽變換的結(jié)果再減去低帽變換,可以有效提高圖像的對比度,豐富細(xì)節(jié)信息。
形態(tài)學(xué)top-hat變換:
Hhat=f-(f°b)
(14)
形態(tài)學(xué)bottom-hat變換:
Bhat=(f·b)-f
(15)
實驗圖像來自于圖像庫里的標(biāo)準(zhǔn)圖像,通過對標(biāo)準(zhǔn)圖像的檢測可以避免很多圖片自身問題所帶來的干擾。圖3為實驗圖像,實驗的硬件配置如表1所示。
圖3 實驗圖像
表1 實驗中的計算機(jī)配置
Tab.1 Computer configuration in experiment
軟件計算機(jī)系統(tǒng)LenovoWindows7-Zip(64bit)實驗平臺軟件Matlab硬件計算機(jī)型號LenovoG405s中央處理器1.9GHz硬盤容量1T運行內(nèi)存4.0GB顯示分辨率1366.0×768.0
用Matlab生成的效果圖如圖4 所示,從第一組Lena圖像中可以得出,改進(jìn)的Sobel邊緣檢測相較于其他兩種檢測效果更好,可以通過圖5 Lena圖像邊緣檢測局部圖,清晰地看出沒有邊緣的斷裂以及邊緣的漏檢。表2給出了對改進(jìn)算法的客觀評價結(jié)果,峰值信噪比(PSNR)是一種評價圖像質(zhì)量最為普遍和使用最廣泛的客觀量測法,其值越大,代表邊緣檢測效果越好。改進(jìn)后的算法能較好地提高圖像的質(zhì)量,保留圖像的原始信息。第二組pepper圖片實驗效果圖和第三組flower實驗效果圖驗證了該算法的使用具有魯棒性。
圖4 傳統(tǒng)算法與改進(jìn)算法及Matlab自帶算法實驗效果圖
圖5 Lena圖像邊緣檢測局部圖
表2 圖像邊緣檢測性能評價
由于改進(jìn)Sobel邊緣檢測圖是由改進(jìn)的四個模板卷積生成的,只是選取了圖像的0°、90°、45°和135°特定的方向,所以有些邊緣細(xì)節(jié)并沒有凸顯出來。通過圖6形態(tài)學(xué)高低帽變換圖(Lena圖像和pepper圖像)可以清晰地看出,在改進(jìn)的Sobel邊緣檢測圖像上加上高帽變換的結(jié)果再減去低帽變換(加入高低帽變換是對整幅圖像進(jìn)行細(xì)節(jié)上的變換處理),可在有效提高圖像對比度[9]的同時,豐富細(xì)節(jié)信息,使檢測到的圖像與原圖像邊緣信息更加吻合。
圖6 形態(tài)學(xué)高低帽變換圖
1)改進(jìn)后的Sobel算法對圖像邊緣的檢測更加清晰,但是有很多邊緣的細(xì)節(jié)丟失。
2)在改進(jìn)的Sobel邊緣檢測圖像上加上高帽變換的結(jié)果再減去低帽變換,可以有效提高圖像的對比度和豐富細(xì)節(jié)信息,能更好地還原圖像的真實邊緣。
通過對數(shù)字圖像的實驗,得到的檢測效果比較理想。在印刷圖像通過掃描設(shè)備進(jìn)行缺陷質(zhì)量檢測過程中,應(yīng)用此優(yōu)化后的邊緣檢測算法,將更便于分析圖像的邊緣信息。