拓小明,李云紅,劉 旭,曹 瀏,霍 可,田冀達(dá),陳 航
(西安工程大學(xué) 電子信息學(xué)院,陜西 西安 710048)
邊緣檢測(cè)是圖像分割的一種方法,通過(guò)搜索圖像中各個(gè)區(qū)域的邊界,從而達(dá)到圖像分割的目的.圖像的邊緣提取是圖像分析領(lǐng)域的基礎(chǔ),也是圖像識(shí)別中提取圖像特征的一個(gè)重要屬性[1].實(shí)際中經(jīng)常用到的邊緣檢測(cè)算子有 Prewitt、Canny、Log、Robert、Sobel等[2],不同的圖像要選用不同的算子,才能達(dá)到好的檢測(cè)效果[3-4].當(dāng)用不同的方法對(duì)圖像進(jìn)行邊緣提取時(shí),Canny算子依靠其優(yōu)越的特點(diǎn)被大多數(shù)人采用.但是Canny算子的局限性是人為設(shè)定的高閾值和低閾值,這就產(chǎn)生了它的閾值選取是否準(zhǔn)確的問(wèn)題.對(duì)于Canny 算子高低閾值如何選擇,近幾年出現(xiàn)了各種解決辦法.運(yùn)用最小二乘法推導(dǎo)出來(lái)的Otsu 算法[5-6]確定 Canny算子的高低閾值[7];采用迭代算法計(jì)算最佳高低雙閾值[8];一種優(yōu)化的Canny算子邊緣檢測(cè)算法[9],主要針對(duì)邊緣的細(xì)化進(jìn)行分析和實(shí)現(xiàn);還有針對(duì)圖像區(qū)域的閾值選取方法[10-11].
本文提出一種基于Canny算子與閾值分割二者結(jié)合的方法,與傳統(tǒng)人為設(shè)定的高低閾值相比,它的適應(yīng)性更好.通過(guò)運(yùn)用最小均方誤差法計(jì)算得到其高閾值,然后高閾值乘以一個(gè)比例系數(shù)得到其低閾值,并用數(shù)學(xué)形態(tài)法對(duì)檢測(cè)后圖像進(jìn)行細(xì)化.通過(guò)運(yùn)用這3種方法對(duì)不同圖像進(jìn)行邊緣檢測(cè),然后對(duì)比檢測(cè)效果,結(jié)果表明,采用本文的算法提取圖像的邊緣更加清晰有效.
Canny對(duì)檢測(cè)出來(lái)的邊緣信息,提出3個(gè)標(biāo)準(zhǔn)[12]:① 信噪比標(biāo)準(zhǔn):圖像檢測(cè)出來(lái)的邊緣是真實(shí)有效的,不必要的邊緣信息盡可能少.所提取到的邊緣信息連續(xù)清晰,從理論上來(lái)講就是使信號(hào)功率比噪聲功率盡可能的大,使得邊緣檢測(cè)的錯(cuò)誤率最小.② 定位精度標(biāo)準(zhǔn):對(duì)于邊緣信息的提取要盡可能的準(zhǔn)確.③ 邊緣響應(yīng)標(biāo)準(zhǔn):對(duì)于一個(gè)相同邊緣,響應(yīng)次數(shù)要低.
Canny邊緣提取的思路是,首先采用Gauss濾波器對(duì)目標(biāo)圖像進(jìn)行平滑濾波,其次通過(guò)非極值抑制技術(shù)對(duì)平滑后的圖像進(jìn)行操作,最后得到邊緣信息.其操作步驟如下:
(1) 高斯濾波器平滑圖像采用的高斯函數(shù)
H(x,y)=exp(-x2+y2/(2σ2)),
(1)
G(x,y)=f(x,y)*H(x,y).
(2)
(2) 計(jì)算梯度的幅值和方向采用的卷積模板
φ1(x,y)=f(x,y)*H1(x,y),
φ2(x,y)=f(x,y)*H2(x,y),
得到幅值
(3)
方向
θφ=(tan(φ2(x,y)/φ1(x,y)))-1.
(4)
(3) 梯度幅值的抑制.保留全局梯度中局部梯度值最大與極大點(diǎn),通過(guò)這個(gè)操作,從而使邊緣的提取得到細(xì)化.
圖1 分段線性灰度變換
(4) 雙閾值算法檢測(cè)與邊緣相連.通過(guò)運(yùn)用T1與T2(T1 利用分段線性變換函數(shù)來(lái)增強(qiáng)圖像對(duì)比度的方法實(shí)際上是增強(qiáng)原圖各部分的反差,即增強(qiáng)輸入圖像中感興趣的灰度區(qū)域.分段線性灰度變換如圖1所示.其數(shù)學(xué)表達(dá)式為 (5) 該方法把圖像中的灰度作為模式特征,假定各個(gè)模式中灰度的隨機(jī)變量是獨(dú)立分布的,并假定目標(biāo)圖像需要分割的模式遵循高斯分布.設(shè)定圖像的灰度區(qū)域只有目標(biāo)和背景.灰度值用z代替,灰度值概率密度函數(shù)的估計(jì)值用p(z)表示.設(shè)定背景灰度值和目標(biāo)灰度值是概率密度函數(shù)的對(duì)應(yīng)參數(shù).圖像的混合密度函數(shù)可表示為 p(z)=P1ρ1(z)+P2ρ2(z). (6) 假設(shè)圖像只有背景和前景,可得 P1+P2=1. (7) 即圖像中的一個(gè)像素出現(xiàn)的位置要么在前景中,要么在背景中.主要問(wèn)題是確定閾值T的大小,運(yùn)用最小均方誤差法選取T,以便一個(gè)隨機(jī)的像素能準(zhǔn)確地分辨出是背景還是前景,如圖2所示. 圖2 最小均方誤差法確定閾值 選取的閾值T,背景點(diǎn)錯(cuò)誤的當(dāng)成前景點(diǎn)的概率 (8) 選取的閾值T,前景點(diǎn)錯(cuò)誤的當(dāng)成背景點(diǎn)的概率 (9) 總錯(cuò)誤率為 E(T)=P2E1(T)+P1E2(T). (10) 為了得到最佳閾值T,將E(T)對(duì)T求微分,令式子等于0.結(jié)果是 P1ρ1(T)=P2ρ2(T). (11) 根據(jù)這個(gè)等式解出T,即為最佳閾值. 為了得到T的表達(dá)式,設(shè)定圖像的目標(biāo)與背景的灰度服從正態(tài)分布,得到 (12) (13) 圖3 Canny算子與閾值分割結(jié)合算法流程圖 (14) 若P1=P2=0.5,則最佳閾值是均值的平均,即位于曲線ρ1(z)和ρ2(z)的交點(diǎn)處. T=(μ1+μ2)/2. (15) 對(duì)于一幅經(jīng)過(guò)預(yù)處理的圖像,σ2描述了類間方差,類間方差是數(shù)理統(tǒng)計(jì)上十分重要的參數(shù).將計(jì)算出來(lái)的T作為Canny算子的高閾值,0.5T作為低閾值.Canny算子與閾值分割結(jié)合的算法的流程圖如圖3所示. 用MATLAB-R2013a軟件對(duì)3幅不同的圖像進(jìn)行仿真,第一種采用最常用的Canny 算子(高閾值乘以系數(shù)0.5得低閾值)檢測(cè)圖像邊緣,第二種采用最小均方誤差法檢測(cè)圖像邊緣,最后采用Canny算子與閾值分割結(jié)合的方法進(jìn)行邊緣檢測(cè)分析.3幅圖像進(jìn)行邊緣信息提取時(shí)設(shè)置的閾值如表1所示.算法仿真實(shí)驗(yàn)結(jié)果如圖4~6所示. 表1 大米、花和Lena圖像的邊緣檢測(cè)閾值 從圖4可以看出,圖4(b)含有不必要的邊緣信息太多(大米里面和外面),圖4(c)算法比圖4(b)算法對(duì)邊緣提取的效果好,但是圖4(c)中仍然還有一些不必要的邊緣(大米內(nèi)部),圖4(d)算法對(duì)邊緣的提取效果最佳.經(jīng)過(guò)比較分析,用Canny算子檢測(cè)的邊緣效果不如使用最小均方誤差法檢測(cè)的邊緣效果好.雖然最小均方誤差法檢測(cè)的效果較好,但還存在一些混雜現(xiàn)象,而用本文的檢測(cè)算法檢測(cè)出來(lái)的邊緣效果最佳. (a) 大米圖像 (b) Canny算子檢測(cè)結(jié)果 (c)最小均方誤差法檢測(cè)結(jié)果 (d) 本文算法檢測(cè)結(jié)果圖4 大米圖像邊緣檢測(cè)結(jié)果 (a) 花圖像 (b) Canny算子檢測(cè)結(jié)果 (c) 最小均方誤差法檢測(cè)結(jié)果 (d) 本文算法檢測(cè)結(jié)果圖5 花圖像邊緣檢測(cè)結(jié)果 (a) Lena圖像 (b) Canny算子檢測(cè)結(jié)果 (c) 最小均方誤差法檢測(cè)結(jié)果 (d) 本文算法檢測(cè)結(jié)果圖6 Lena圖像邊緣檢測(cè)結(jié)果 圖5可以看出,用前2種方法提取的邊緣都出現(xiàn)了混雜現(xiàn)象,所以圖像顯示的比較混亂.圖5(b)和圖5(c)提取花瓣的邊緣信息很多都是不必要的邊緣信息,而且檢測(cè)到了在根莖葉旁邊的一些虛假邊緣,本文算法提取的邊緣沒(méi)有虛假邊緣,而且比較清晰有效.圖6可以明顯的看出,用前2種方法對(duì)Lena圖像進(jìn)行邊緣提取時(shí),Lena的眼睛、鼻子、嘴和帽子的修飾部分提取的邊緣信息不準(zhǔn)確,而且混雜現(xiàn)象比較嚴(yán)重,提取出來(lái)的邊緣信息很多都是不必要的,所以圖像顯得混亂.而用本文方法進(jìn)行邊緣提取時(shí)線條清晰連續(xù),Lena的臉部輪廓比較清晰. 從以上實(shí)驗(yàn)結(jié)果可以得出,本文所采用的Canny算子與閾值分割結(jié)合的算法,檢測(cè)到的圖像邊緣信息準(zhǔn)確有效,同時(shí)相比較Canny方法和最小均方誤差法更具有優(yōu)勢(shì). 本文算法是在 Canny 算法的基礎(chǔ)上,采用最小均方誤差法得到Canny算法的高閾值和低閾值.此方法對(duì)圖像的邊緣檢測(cè)較好,可以有效準(zhǔn)確地提取圖像邊緣信息,還可以抵抗不必要的干擾和噪聲.該方法對(duì)Canny 算法閾值選擇是一個(gè)非常好地解決方案.通過(guò)實(shí)驗(yàn)得出,此方法對(duì)不同的圖像都能較好地提取邊緣信息,與傳統(tǒng) Canny 算法和最小均方誤差法相比在邊緣檢測(cè)上更具有優(yōu)勢(shì). 參考文獻(xiàn): [1] 李云紅,曲海濤.數(shù)字圖像處理[M].北京:北京大學(xué)出版社,2012:155-156. [2] 岡薩雷斯.數(shù)字圖像處理:MATLAB版[M].北京:電子工業(yè)出版社,2005:290-293. [3] 趙芳,欒曉明,孫越. 數(shù)字圖像幾種邊緣檢測(cè)算子檢測(cè)比較分析[J].通信與信息處理,2009,28(3):68-72. [4] 馮伍,張俊蘭,苗秋瑾. 幾種典型邊緣檢測(cè)算子的評(píng)估[J].電子設(shè)計(jì)工程,2011,19(4):131-133. [5] 李孟歆,侯丁丁,夏興華,等.一種基于頂帽變換和 Otsu 閾值的軌道邊緣提取方法[J].集成技術(shù),2013,2(6):51-53. [6] 胡蓓,隆霞,胡超,等.改進(jìn)脈沖耦合神經(jīng)網(wǎng)絡(luò)及二維Otsu算法的光伏陣列陰影檢測(cè)[J].應(yīng)用科學(xué)學(xué)報(bào),2013,31(6):613-618. [7] 唐路路,張啟燦,胡松.一種自適應(yīng)閾值的Canny邊緣檢測(cè)算法[J].光電工程,2011,38(5):127-132. [8] 王小俊,劉旭敏,關(guān)永.基于改進(jìn)Canny算子的圖像邊緣檢測(cè)算法[J].計(jì)算機(jī)工程,2012,38(14):196-202. [9] 陳志強(qiáng),高磊,吳黎慧,等.一種優(yōu)化的Canny算子邊緣檢測(cè)法[J].電子測(cè)試,2011,6(23):43-46. [10] 宋瑩,陳科,林江莉,等.基于圖像分塊的邊緣檢測(cè)算法[J].計(jì)算機(jī)工程,2010,36(14):196-200. [11] 梁靚,黃玉清.融合Canny算子和形態(tài)學(xué)方法的路徑識(shí)別[J].計(jì)算機(jī)工程,2006,32(21):200-202. [12] 張錚,倪紅霞,苑春苗,等.精通Matlab數(shù)字圖像處理與識(shí)別[M].北京:人民郵電出版社,2013:256-258.2 Canny算子與閾值分割結(jié)合的算法
2.1 圖像增強(qiáng)
2.2 最小均方誤差法
3 結(jié)果與分析
4 結(jié)束語(yǔ)
西安工程大學(xué)學(xué)報(bào)2014年6期