馮偉,劉光宇,曹禹,王帥,趙恩銘,邢傳璽
(1.大理大學(xué)工程學(xué)院,云南 大理 671003;2.云南民族大學(xué)電氣信息工程學(xué)院,云南 昆明 650504)
隨著科技的不斷發(fā)展,圖像處理技術(shù)越來越多地被應(yīng)用于工業(yè)生產(chǎn)和日常生活的各個領(lǐng)域中,圖像邊緣檢測作為圖像處理中最基本且重要的步驟,圖像邊緣檢測技術(shù)也成為近些年的研究重點(diǎn)和熱點(diǎn)[1-2].到目前為止,研究人員已經(jīng)提出了多種不同的邊緣檢測算法,檢測效果各有特點(diǎn),檢測結(jié)果在準(zhǔn)確性、連續(xù)性、邊緣寬度以及抑制噪聲等方面都有很大差異,但不能找到一種有效的算法適用于大多數(shù)的圖像[3],所以通過分析邊緣檢測的效果確定每種檢測方法的優(yōu)缺點(diǎn)和適應(yīng)性, 對后續(xù)的圖像處理選擇合適的邊緣檢測算法非常重要.
本文采用Roberts 算子、Prewitt 算子、Sobel 算子、Laplace 算子和Canny 算子這5 種微分算子分別對原圖和含噪圖像進(jìn)行邊緣檢測,并分析每種邊緣檢測方法的優(yōu)缺點(diǎn)和差異.
圖像邊緣檢測是指從圖像中檢測出邊緣點(diǎn)和邊緣線段,然后描述出邊緣方向的過程[4].圖像信息變化時會出現(xiàn)邊緣,由于在描繪圖像邊緣時,要將圖上具有相同關(guān)系的邊緣連接成邊緣線,可以利用如下公式來找到邊緣的位置和確定邊緣的方向[5-6].
用(x,y)表示為當(dāng)前像素點(diǎn)位置,f(x,y)為當(dāng)前像素點(diǎn)位置的灰度值,通過微分計算得到灰度圖像的梯度變化,由于灰度圖像是一個離散的二維函數(shù),微分計算分別對水平方向x 和垂直方向y 求偏導(dǎo)可以得到梯度變化,計算公式如下
梯度的幅值可以用 | ?f(x,y)|表示,它代表梯度變化的大小,計算公式如下
用M(x,y)表示梯度幅值,將(2)式化簡可得
因此對于圖像中的一個像素點(diǎn)(x,y),判定這個像素點(diǎn)是否是邊緣點(diǎn),可以通過設(shè)定一個閾值來判斷,若微分算子計算后像素點(diǎn)梯度變化幅值大于該閾值,就確定為邊緣[7],以此得到含有邊緣信息的圖像,可以保留圖像中最重要的信息特征,剔除不相關(guān)的信息而大幅減少圖像的數(shù)據(jù)量[8].
Roberts 算子是簡單的一階線性微分代數(shù)算子,它是一種基于斜率梯度的部分微分來計算邊緣梯度的方法[9].梯度大小代表邊緣的強(qiáng)度,梯度的方向與代表邊緣的強(qiáng)度方向垂直(正交).其計算方法如下
Rx和Ry分別表示在水平方向和垂直方向Roberts 算子計算得到的像素點(diǎn)的灰度值, 可以用模板表示,模板中的元素表示算式中相應(yīng)像素的加權(quán)因子,水平方向和垂直方向模板分別為
Prewitt 微分算子是一階微分算子,它是通過在像素點(diǎn)和圖像內(nèi)部邊緣或者頂點(diǎn)附近處通過找出可以達(dá)到一個圖像極值的內(nèi)部來檢測邊緣,是可以去掉部分偽差的檢測算子,對外部圖像噪聲源的影響具有平滑性和補(bǔ)償性的作用[10].其計算方法如下
Px和Py分別表示在水平方向和垂直方向Prewitt 算子計算得到的像素點(diǎn)的灰度值,轉(zhuǎn)換為模板得到
Sobel 算子是一階微分算子,它用于檢測像素梯度圖像的邊緣亮度,Sobel 算子強(qiáng)調(diào)了像素位置的效果,從而減少了邊緣的模糊[11].它是對當(dāng)前行或列對應(yīng)的值加權(quán)后,再進(jìn)行平均和差分,其計算方法如下
Sx和Sy分別表示在水平方向和垂直方向Sobel 算子計算得到的像素點(diǎn)的灰度值,其卷積模板為
Laplace 算子是一個二階微分線性算子.它是無方向性的算子,它的邊緣方向不需要依靠二階導(dǎo)數(shù),而是表示像素點(diǎn)附近鄰域與該點(diǎn)像素點(diǎn)值的差[12].Laplace 算子的計算如下
L(x,y)表示在處Laplace 算子計算得到的像素點(diǎn)的灰度值,轉(zhuǎn)換為模板得到
Canny 算子是高斯函數(shù)的一階導(dǎo)數(shù),是對信噪比和定位精度之乘積的最優(yōu)逼近算子[13],它由以下四個步驟組成.
第一步:對圖像高斯濾波.
高斯濾波的主要作用是平滑(模糊)圖像,將圖像中的噪聲減少,也可能增加邊緣的寬度.高斯函數(shù)是一個類似于正態(tài)分布的函數(shù),用σ 表示標(biāo)準(zhǔn)差,經(jīng)過高斯濾波后得到(x,y)處的灰度值為C(x,y),高斯濾波后的灰度值可由如下公式得到
第二步:計算梯度幅值和梯度方向.
在圖像中,梯度被用來表示灰度值的變化程度和方向.計算梯度幅值和梯度方向的方法如公式(3)和公式(4)所示.
第三步:對幅值進(jìn)行非極大值抑制.
非極大值抑制是用來過濾不是邊緣的點(diǎn),使邊緣的寬度盡可能用較少的像素進(jìn)行表示.計算整個圖像的梯度幅值,保留每個方向上梯度幅值最大的點(diǎn),并將其余的像素點(diǎn)的灰度值置為0[14].
第四步:采用雙閾值檢測和連接邊緣.
選擇兩個大小不同的閾值,將像素點(diǎn)的灰度值分為三類,它們分別是大于高閾值的像素點(diǎn)、低于低閾值的像素點(diǎn)以及介于高閾值和低閾值之間的像素點(diǎn),將第一類像素點(diǎn)確定為強(qiáng)邊緣點(diǎn),將灰度值置為1,將低于低閾值的像素點(diǎn)確定為非邊緣點(diǎn),將其灰度值置為0,介于高閾值和低閾值之間的像素點(diǎn)確定為弱邊緣點(diǎn),當(dāng)弱邊緣連接到強(qiáng)邊緣時才能確定為邊緣[15],以減少邊緣的寬度并確保邊緣檢測的連續(xù)性.
2.1.1 實(shí)驗(yàn)流程 實(shí)驗(yàn)流程圖如圖1 所示.對原始灰度圖像添加噪聲并濾波, 得到一幅濾波后的灰度圖像,對原始灰度圖像和濾波后的灰度圖像進(jìn)行直方圖對比,分別利用5 種微分算子進(jìn)行邊緣檢測,最后分析結(jié)果以及評價每種算子抑制噪聲的能力.
圖1 實(shí)驗(yàn)流程Fig.1 Experimental flowchart
以尺寸為256×256、位深度為8 的五葉地錦灰度圖像作為原始圖像,格式為jpg,如圖2 所示為五葉地錦灰度圖像.
圖2 五葉地錦灰度圖像Fig.2 Gray image of virginia creeper
對五葉地錦灰度圖像添加方差為0.01 的高斯噪聲,并采用5×5 模板的高斯濾波處理五葉地錦灰度圖像[16],得到高斯濾波后的灰度圖像如圖3 所示.
圖3 高斯濾波后的灰度圖像Fig.3 Gaussian filtered gray image
2.1.2 直方圖對比 對圖像邊緣檢測的目的是利用微分算子對圖像邊緣進(jìn)行提取,能夠準(zhǔn)確地顯示目標(biāo)物的信息,所以將最終邊緣檢測的結(jié)果表示為一幅二值化圖像,此時圖像中只有像素值為0 和1 的兩個像素,其中0 代表的是黑色,即利用非邊緣像素點(diǎn)充當(dāng)背景,1 代表白色,即圖中目標(biāo)物的邊緣,以此清晰地顯示邊緣檢測的結(jié)果.
灰度級直方圖是圖像的一種統(tǒng)計表達(dá),它反映了該圖中不同灰度出現(xiàn)的統(tǒng)計概率,所以可以通過直方圖直接觀測灰度級出現(xiàn)的頻率[17].對五葉地錦灰度圖像和高斯濾波后的灰度圖像進(jìn)行直方圖統(tǒng)計,可以直觀的看到灰度級分布和出現(xiàn)頻率的變化,如圖4 所示為兩幅灰度圖像的直方圖分布,其中灰度值大小的變化和整體灰度分布的變化存在比較大的差異,如圖4-b 所示,使用高斯濾波后的圖像灰度變化更加平緩.
圖4 兩幅灰度圖像的直方圖分布Fig.4 Histogram distribution of two gray images
2.2.1 實(shí)驗(yàn)結(jié)果 使用5 種微分算子分別對五葉地錦灰度圖像進(jìn)行邊緣檢測,檢測結(jié)果如圖5 所示.
圖5 五葉地錦邊緣檢測結(jié)果Fig.5 Edge detection results of Virginia creeper
圖5-a~e 分別為Roberts 算子、Prewitt 算子、Sobel 算子、Laplace 算子和Canny 算子對五葉地錦灰度圖像邊緣的檢測結(jié)果.圖5-a~c 對原始灰度圖像邊緣檢測的效果是較為相似的,對梯度較為明顯的部分檢測準(zhǔn)確性較高,但都對一些梯度變化較小的部分無法準(zhǔn)確檢測,且存在斷點(diǎn)問題,而圖3-a 邊緣檢測寬度比圖5-b 和圖5-c 稍窄一點(diǎn).圖5-d 對圖像邊緣檢測的連續(xù)性不夠,出現(xiàn)的斷點(diǎn)較多,檢測結(jié)果差于其它微分算子的檢測結(jié)果.圖5-e Canny 算子檢測的邊緣寬度較小,可以將梯度變化較小的邊緣檢測出來,邊緣連續(xù)性高,檢測效果最好.
2.2.2 不同像素比值計算 邊緣檢測后的圖像是一幅二值化圖像,圖5 中每幅圖像只含有兩個像素值,每幅圖像兩種像素值的數(shù)量差距比較大,Prewitt 算子和Sobel 算子中的像素值為1 的像素較多,而Canny算子像素值為0 的像素較多.利用直方圖可以更加直接的對比兩種像素點(diǎn)的數(shù)量,由于像素數(shù)量較大,為了方便計算與可觀測,采用比值計算方法得到兩種類型像素數(shù)量的比值,令像素點(diǎn)值為0 的全部像素點(diǎn)之和除以像素點(diǎn)為1 的全部像素點(diǎn)之和,比值越大,說明圖中像素點(diǎn)為1 的白色越多,比值越小,說明像素點(diǎn)為0 的黑色越多.
如圖6 為計算結(jié)果,Laplace 算子和Canny 算子的比值比較大,像素點(diǎn)值為1 的像素較少,Prewitt 算子和Sobel 算子的比值較小,像素點(diǎn)值為1 的像素較少,與實(shí)驗(yàn)結(jié)果一致.
圖6 灰度圖像邊緣檢測比值Fig.6 Gray image edge detection ratio
2.3.1 實(shí)驗(yàn)結(jié)果 使用5 種微分算子分別對高斯濾波后的灰度圖像進(jìn)行邊緣檢測,檢測結(jié)果如圖7 所示.
圖7 濾波后的灰度圖像檢測結(jié)果Fig.7 Detection results of filtered gray image
圖7-a~e 分別為Roberts 算子、Prewitt 算子、Sobel 算子、Laplace 算子和Canny 算子對濾波后的灰度圖像邊緣檢測結(jié)果.圖7-a 和圖7-d 受噪聲干擾影響較大,對圖像邊緣檢測的效果較差.圖7-c 和圖7-d對濾波后的灰度圖像檢測結(jié)果較為相似,大部分邊緣被檢測出來,但含有明顯的噪聲,檢測結(jié)果一般.圖7-e Canny 算子對濾波后的灰度圖像的檢測結(jié)果最優(yōu),將大部分的噪聲過濾掉,檢測連續(xù)性較好,邊緣定位準(zhǔn)確,檢測結(jié)果顯示比較清晰.
2.3.2 不同像素比值計算 在圖7 濾波后的灰度圖像邊緣檢測結(jié)果中,Laplace 算子的邊緣檢測效果最差,圖像中信息最混亂,含有的噪聲最多,所以它的像素值為1 的像素點(diǎn)數(shù)量最多,Prewitt 算子和Sobel 算子的去噪能力比Roberts 算子稍好一些,Roberts 算子含有像素值為1 的像素點(diǎn)數(shù)量稍多,Canny 算子檢測效果最好,邊緣清晰且含有的噪聲最少,它的像素值為1 的像素點(diǎn)數(shù)量最少.采用比值計算方法,令像素點(diǎn)值為0 的全部像素之和除以像素值為1 的全部像素之和,得到兩種像素值出現(xiàn)頻率的比值.
圖8 為經(jīng)過邊緣檢測的濾波后灰度圖像中兩種像素值出現(xiàn)頻率的比值.其中Laplace 算子的比值最小, 含有像素值為1 的像素點(diǎn)最多,Roberts 算子、Prewitt 算子和Sobel 算子的像素值為1 的像素點(diǎn)數(shù)量比較相近,Canny 算子的比值最大,說明它含有像素值為1 的像素點(diǎn)最少,且和其他算子的比值差距較大,去噪能力相比較其他算子有比較大優(yōu)勢.
圖8 濾波后的灰度圖像邊緣檢測比值Fig.8 Edge detection ratio of filtered gray image
2.3.3 數(shù)據(jù)比較 以五葉地錦灰度圖像的檢測結(jié)果為標(biāo)準(zhǔn),分析每種微分算子對濾波后的灰度圖像檢測效果,通過峰值信噪比、均方誤差和信噪比等數(shù)據(jù)比較每種微分算子抑制噪聲的能力,實(shí)驗(yàn)數(shù)據(jù)如表1所示.
表1 濾波后灰度圖像邊緣檢測變化數(shù)據(jù)Tab.1 Change data of gray image edge detection after filtering
在表1 中,Canny 算子檢測得到的峰值信噪比的值和信噪比的值最大、均方誤差的值最小,說明對噪聲的抑制能力最好,與Canny 算子檢測后的圖像信息一致.峰值信噪比、信噪比和均方誤差數(shù)據(jù)次之的Prewitt 算子和Sobel 算子的檢測結(jié)果稍弱,Laplace 算子對濾波后灰度圖像檢測效果最差.
本文的微分算子邊緣檢測方法基于圖像灰度值的梯度變化,采用不同的微分算子進(jìn)行邊緣檢測和對比分析.通過分析不同算子邊緣檢測的優(yōu)缺點(diǎn)和適應(yīng)性,實(shí)驗(yàn)結(jié)果顯示,原圖的檢測結(jié)果基本與圖像中實(shí)際的邊緣信息相符合,Canny算子檢測效果最好,而Sobel 算子和prewitt 算子檢測的邊緣寬度較大,Roberts算子和Laplace 算子的對邊緣的定位稍差一些,且Laplace 算子的斷點(diǎn)問題較嚴(yán)重.而在含噪圖像的檢測中,受噪聲影響的檢測結(jié)果差異性較大,Laplace 算子受噪聲影響最大,檢測效果最差,Roberts 算子對噪聲的抑制能力次之,prewitt 算子和Sobel 算子檢測結(jié)果相似,但都含有噪聲,Canny 算子對噪聲抑制能力最強(qiáng),檢測效果最好.