劉紫燕,祁 佳,唐思騰,徐躍州,馮 亮
(貴州大學電子信息學院,貴州貴陽550025)
邊緣是圖像最基本的特征之一,蘊含了豐富的內(nèi)在信息[1]。圖像邊緣通常是指圖像的灰度值發(fā)生急劇變化的像素點的集合,圖像的邊緣含有豐富的信息,被廣泛應(yīng)用在圖像處理以及目標識別等領(lǐng)域[2]。
傳統(tǒng)的邊緣檢測算子是利用微分算子對像素灰度級劇烈變化進行檢測從而得到邊緣,如經(jīng)典的Sobel邊緣算子,其結(jié)構(gòu)簡單且運算速度快,但是邊緣往往不夠完整和細致,對于噪聲和光照變化較為敏感,特別是低對比度圖像,提取的邊緣特征往往不明顯[3]。
由生理學和光學原理可知,人眼感知的并非物體的絕對亮度,而是不同部位或物體間的相對亮度。因此對比度越強,畫面越易于觀察和鑒別[4]。針對Sobel邊緣檢測算法的不足,增大對比度可以提高算法對于邊緣信息的鑒別能力。故本文提出一種新的基于對比度增強的Sobel邊緣檢測改進算法,利用對灰度圖像對比度增強的規(guī)則,使該算法的邊緣檢測能力明顯優(yōu)于傳統(tǒng)Sobel邊緣檢測算法。
基于對比度增強的邊緣檢測算法,需要對待檢測的灰度圖像進行合理的對比度增強,即對于灰度值進行合理的增大和減小,要確定灰度的增減值則需要使用合理的推理規(guī)則。
邊緣通常存在于圖像灰度值變化劇烈的部分,通過對邊緣像素點與領(lǐng)域的像素點的差異進行分析,再利用邊緣檢測模板內(nèi)的像素點灰度值間的差值增強,來判斷像素是否為邊緣點。
通常邊緣像素點所在的邊緣檢測模板中心的窗口內(nèi)灰度對比較強烈,但是在有背景噪聲或者圖像對比度低的情況下,會導致虛假邊緣的出現(xiàn)或者邊緣丟失。因此,如何在降低圖像背景噪聲的同時又能提高圖像像素點之間的對比度,從而來改善圖像的邊緣檢測質(zhì)量。
由上述分析可知,對比度對圖像邊緣的影響較大,本文基于對比度增強的邊緣檢測算法,先對灰度圖像進行中值濾波,再將灰度值進行對比度增強,最后將灰度值進行Sobel算法的邊緣檢測,并在FPGA上實現(xiàn)。
中值濾波使用非線性空間濾波方法來濾除噪聲,能在濾除多種噪聲的同時,又能很好地保留圖像的邊緣[5]。
中值濾波的主要原理是:將某個邊緣檢測模板中的所有像素點按灰度值大小進行排序,選擇排序之后的序列中間值作為輸出的中值濾波之后的像素值;如果鄰域像素點灰度值與邊緣模板的中心點像素值相差比較大,取與鄰域像素點接近的值為該點中值濾波之后的值,從而達到降低噪聲的目的。
Sobel算子計算梯度需要計算水平方向和垂直方向的梯度,再求兩方向梯度的絕對值和最終梯度值,再與給定閾值進行判斷得到圖像邊緣[6]。
Sobel算子是一階微分的邊緣檢測算子,它把待檢測圖像看作一個曲面,把Sobel邊緣檢測算子作為梯度算子,作用于圖像f(x,y),于是可得到向量場
局部梯度強度為
在圖像邊緣檢測的實際應(yīng)用與研究中,通常只需要計算出局部梯度強度,再經(jīng)差分等相關(guān)技術(shù)進行離散化,即可得較為簡單的邊緣算子模板[6]。
本算法是利用增強邊緣檢測模板中的某個像素點鄰域值的對比度來實現(xiàn)的,首先求某個像素點的邊緣檢測模板內(nèi)所有像素點的灰度值的平均值,再將邊緣檢測模板內(nèi)所有像素點的值與該平均值進行比較,將模板內(nèi)的像素點灰度值分為兩類,再求該邊緣檢測模板內(nèi)中心像素點與周圍鄰域點灰度值的差的絕對值的平均值,求出中心像素點與周圍鄰域點灰度值的差的平均值,將邊緣模板內(nèi)大于灰度值平均值的像素點加上該平均值,反之則減去中心像素點與周圍鄰域點灰度值的差的平均值,以達到對比度增強的目的。
設(shè)一個Sobel邊緣檢測模板內(nèi)的像素點灰度值為:Pk(k=1,2,…,9),其中P5為需要判斷是否為邊緣點的模板中心點。
設(shè)該模板的像素點灰度值的平均值為Pa,則有
局部梯度方向為
設(shè)該模板的像素點與中心點像素P5差的絕對值的平均值為PT,則有
將Sobel模板中的所有像素點灰度值Pk依次與模板中像素點灰度值的平均值Pa進行比較,并分為兩類:
如果Pk≥Pa,將該像素點分為A類:P'i(i=1,2,…,9);反之Pk<Pa,將該像素點分為B類:P'j(j=0,1,…,8)。
分別對A類和B類像素點作如下處理:
1)將A類像素點的灰度值加上該模板的像素點與中心點像素差的絕對值的平均值PT,得到新的A類像素點值:P'i+PT(i=1,2,…,9)。
2)將B類像素點的灰度值與該模板的像素點與中心點像素差的絕對值的平均值PT比較,如果B類像素點的灰度值大于或等于PT,得到新的像素值點:P'j-PT(j=0,1,…,8);反之則將P'j(j=0,1,…,8)置0。
3)將A類和B類灰度值增強后的像素點存儲至灰度值增強前在邊緣檢測模板中的原始位置,即完成灰度值增強的運算。
基于以上分析,利用Sobel算子的3×3模板,設(shè)計的本文算法如下:
1)將實時彩色圖像轉(zhuǎn)化為灰度圖像,并對實時灰度圖像進行中值濾波。
2)求出Sobel算子模板中所有像素點的灰度值的平均值Pa,并求得該模板的像素點與中心點像素P5差的絕對值的平均值為PT。
3)將Sobel模板中的所有像素點灰度值Pk(1≤k≤9)依次與模板中像素點灰度值的平均值Pa進行比較,并分為兩類:大于或等于Pa分為A類,小于Pa則分為B類。
4)將A類像素點的灰度值加上該模板的像素點與中心點像素P5差的絕對值的平均值PT;將B類像素點的灰度值大于或等于該模板的像素點與中心點像素P5差的絕對值的平均值PT,則將該B類像素點的灰度值減去PT,反之則將該B類像素點的灰度值置0。
5)將A類和B類灰度值增強后的像素點存儲到灰度值增強前在邊緣檢測模板中的原始位置。
6)將灰度值增強后的Sobel算子的3×3模板進行Sobel實時邊緣檢測,完成對比度增強的實時圖像邊緣檢測。
本系統(tǒng)將采集的實時彩色原始視頻格式轉(zhuǎn)化為RGB格式并存入4端口的SDRAM中,將RGB格式的實時彩色圖像轉(zhuǎn)化為實時灰度圖像,將經(jīng)過中值濾波后的實時灰度圖像進行灰度值的對比度增強,再進行Sobel算子實時邊緣檢測,將得到的實時邊緣圖像在液晶屏顯示。
中值濾波主要組成模塊是窗口模塊與排序模塊,在判斷邊緣點之前,先使模板內(nèi)的9個點通過3×3滑動窗口[7],如圖1所示,其中Pk(1≤k≤9)是模板中的9個像素點的灰度值。
圖1 3×3滑動窗口數(shù)據(jù)輸出結(jié)構(gòu)圖
將模板中的9個點排序,再將點P5與排序后的所有點的最大值和最小值進行比較,如果P5為最大值或最小值,輸出排序后所有點的中間值作為中值濾波的值;否則輸出P5的值作為中值濾波的值[7]。
判斷P5是否為最大值或最小值的過程可以用比較器來實現(xiàn),其核心Verilog程序代碼如下:
代碼中:q[0]為排序后的最小值;q[8]為經(jīng)過排序之后的最大值;q[4]為中間值;oDATA為輸出的自適應(yīng)中值濾波的值。
對比度增強模塊主要由求Sobel算子模板平均值模塊、求Sobel算子模板的像素點與中心點像素差的絕對值的平均值模塊、對Sobel算子模板像素分類模塊、對分類好的模塊中像素值進行灰度值增強處理模塊所組成,如圖2所示。
圖2 對比度增強模塊結(jié)構(gòu)圖
該模塊用3條線性緩沖器來實現(xiàn)Sobel算子對圖像的卷積運算,其中乘加部分由QuartusII軟件中LPM/Megafunctions宏功能模塊庫的可編程乘加器altmult_add與可編程多路并行加法器parallel_add模塊進行運算[8]。其原理如圖3所示,圖中X1~X9為Sobel算子模板中的系數(shù)。
本系統(tǒng)在友晶公司DE2-70的實驗平臺實現(xiàn),圖4a~圖4d為實驗結(jié)果圖。圖4a為實時彩色圖像,圖4b為實時灰度圖像;圖4c為傳統(tǒng)Sobel算法的實時邊緣圖像;圖4d為本文采用對比度增強改進的實時Sobel算法邊緣。通過對于實驗結(jié)果對比分析可以看出,與傳統(tǒng)Sobel實時邊緣檢測算法相比,采用對比度增強改進的實時Sobel算法檢測出的實時圖像邊緣更加精細,同時能更好地抑制背景噪聲。
本文將實時灰度圖像先進行中值濾波,再將濾波后的灰度圖像進行灰度值增強進行Sobel實時圖像的邊緣檢測,并在DE2-70的FPGA平臺上實現(xiàn)了改進算法的系統(tǒng)。通過對實驗結(jié)果分析可以得出,與經(jīng)典的Sobel邊緣算法檢測得出的實時邊緣相比,該系統(tǒng)檢測出的邊緣檢測更加精細,對抑制噪聲的能力顯著增強。
:
[1]祁佳,劉紫燕.實時圖像雙邊緣檢測算法及FPGA實現(xiàn)[J].電視技術(shù),2014,38(3):64-65.
[2]趙懷勛,鄭敏,李志強.一種針對含噪低對比度圖像的邊緣檢測方法[J].微計算機應(yīng)用,2007,28(4):399-402.
[3]徐東燕,付忠良,阮波.一種基于多元結(jié)構(gòu)的弱對比度圖像邊緣檢測方法[J].計算機應(yīng)用,2004,24(6):108-110.
[4]計忠平,方美娥,王毅剛,等.保持邊緣特征和增強對比度的圖像縮放算法[J].中國圖象圖形學報,2012,17(2):178-182.
[5]薛麗霞,李濤,王佐成.一種自適應(yīng)的Canny邊緣檢測算法[J].計算機應(yīng)用研究,2010,27(9):3588-3590.
[6]李杰,彭月英,元昌安,等.基于數(shù)學形態(tài)學細化算法的圖像邊緣細化[J].計算機應(yīng)用,2012,32(2):514-516.
[7]陳倫海,黃君凱,楊帆,等.基于FPGA的實時邊緣檢測系統(tǒng)[J].液晶與顯示,2011,26(2):200-204.
[8]劉紫燕.實時圖像邊緣檢測的設(shè)計及FPGA實現(xiàn)[J].電子科技,2011,24(12):1-3.