基于Matab的數(shù)字圖像邊緣檢測(cè)算法研究畢業(yè)設(shè)計(jì)_第1頁(yè)
基于Matab的數(shù)字圖像邊緣檢測(cè)算法研究畢業(yè)設(shè)計(jì)_第2頁(yè)
基于Matab的數(shù)字圖像邊緣檢測(cè)算法研究畢業(yè)設(shè)計(jì)_第3頁(yè)
基于Matab的數(shù)字圖像邊緣檢測(cè)算法研究畢業(yè)設(shè)計(jì)_第4頁(yè)
基于Matab的數(shù)字圖像邊緣檢測(cè)算法研究畢業(yè)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩47頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于Matab的數(shù)字圖像邊緣檢測(cè)算法研究專業(yè):自動(dòng)化班級(jí):2006級(jí)4班姓名:目錄引言31基于一階微分的邊緣檢測(cè)算法7Roberts算子7Prewitt算子8Kirsch算子82基于二階微分的邊緣檢測(cè)算法10Laplacian算子10LoG算子12Canny算子153最佳Sobel邊緣檢測(cè)方法18Sobel圖像邊緣檢測(cè)方法18改進(jìn)的Sobel邊緣檢測(cè)方法18Sobel算子的最佳閾值選取194基于Matlab的實(shí)驗(yàn)結(jié)果與分析22Matlab簡(jiǎn)介22一階微分算法的實(shí)驗(yàn)結(jié)果與分析25二階微分算法的實(shí)驗(yàn)結(jié)果與分析30最佳Sobel邊緣檢測(cè)算法的實(shí)驗(yàn)結(jié)果與分析35結(jié)論40致謝42參考文獻(xiàn)43附錄源程序清

2、單45摘要在實(shí)際圖像處理問題中,圖像的邊緣作為圖像的一種基本特征,經(jīng)常被應(yīng)用到較高層次的圖像應(yīng)用中去。它在圖像識(shí)別,圖像分割,圖像增強(qiáng)以及圖像壓縮等的領(lǐng)域中有較為廣泛的應(yīng)用,也是它們的基礎(chǔ)。邊緣檢測(cè)是圖像處理與分析中最基礎(chǔ)的內(nèi)容之一,也是至今仍沒有得到圓滿解決的一類問題。圖像的邊緣包含了圖像的位置、輪廓等特征,是圖像的基本特征之一,廣泛地應(yīng)用于特征描述、圖像分割、圖像增強(qiáng)、圖像復(fù)原、模式識(shí)別、圖像壓縮等圖像分析和處理中。因此,圖像邊緣和輪廓特征的檢測(cè)與提取方法,一直是圖像處理與分析技術(shù)中的研究熱點(diǎn),新理論、新方法不斷涌現(xiàn)。本文研究了一些邊緣檢測(cè)算法,包括傳統(tǒng)的Roberts、Sobel、Pre

3、witt、LoG、Canny、Kirsch等算法。經(jīng)典邊緣檢測(cè)方法的抗噪聲性能都較差,解決該問題的主要方法就是設(shè)置閾值,把得到的圖像高頻部分與閾值相比較以達(dá)到去噪的目的,所以閾值的選取顯得尤為重要。傳統(tǒng)方法中的閾值都是通過(guò)實(shí)驗(yàn)確定的,沒有統(tǒng)一的閾值選取方法。本文利用邊緣的最大后驗(yàn)概率估計(jì),介紹一種新的邊緣估計(jì)方法,從理論上說(shuō)明了怎樣選取最佳閾值。文章中關(guān)于這些方法都有較詳細(xì)的介紹,以及算法的實(shí)現(xiàn)步驟。對(duì)算法均進(jìn)行了仿真實(shí)驗(yàn)。論文的主要目的是進(jìn)行圖像邊緣檢測(cè)算法性能比較的研究。實(shí)驗(yàn)結(jié)果表明,本文的算法比較可以為圖像處理的后續(xù)環(huán)節(jié)提供一些有益的參考。關(guān)鍵詞:邊緣檢測(cè);圖像處理;Matlab; So

4、bel;檢測(cè)算法AbstractIn image processing, as a basic characteristic, the edge of the image, which is widely used in the recognition, segmentation, intensification and compress of the image, is often applied to high-level domain.Edge detection is one of the most fundamentals in image processing and analyz

5、ing, which is still unsolved. Images edges include images features such as position and outline, which belong to the fundamental features. Edge detection is widely used in image analysis and processing such as feature description, image segmentation, image enhancement, pattern recognition and image

6、compression etc, so Edge Detection and extract of outline figure are the research hotspot in the technology of image processing and analysis all, on which the new theory and methods are put forward constantly.Some edge detection algorithms are researched, including Roberts, Sobel, Prewitt, LoG, Cann

7、y, Kirsch etc. The classic edge detection methods have somedrawbacks in image denoising. The main idea ofresolving this problem is to set athreshold, then compare the threshold with the high-frequency components of an imageto remove the noise.The choice of the threshold is the key of imagedenoising.

8、 Thethreshold of traditional methods is obtained by experiments, and there is no generalmethod to determine it. A new method of edge estimation by the Maximum a Posteriori(MAP)is presented in this paper. It proves how to choose the optimal threshold intheory. These algorithms are introduced in detai

9、l, and the steps of algorithm realization are introduce too.The algorithm is tested by simulation.The main aim of the paper is studying Performance Evaluation in edge detection algorithms, and the detection results are compared. The experiments results show that the algorithms can be a useful refere

10、nce of latter parts of image processing.Keywords:edge detection; image processing; Matlab; Sobel; detection algorithm引言圖像邊緣是圖像最基本的特征之一,往往攜帶著一幅圖像的大部分信息。而邊緣存在于圖像的不規(guī)則結(jié)構(gòu)和不平穩(wěn)現(xiàn)象中,也即存在于信號(hào)的突變點(diǎn)處,這些點(diǎn)給出了圖像輪廓的位置,這些輪廓常常是在圖像處理時(shí)所需要的非常重要的一些特征條件,這就需要對(duì)一幅圖像檢測(cè)并提取出它的邊緣。而邊緣檢測(cè)算法則是圖像處理問題中經(jīng)典技術(shù)難題之一,它的解決對(duì)于進(jìn)行高層次的特征描述、識(shí)別和理解等有著重

11、大的影響;又由于邊緣檢測(cè)在許多方面都有著非常重要的使用價(jià)值,所以人們一直在致力于研究和解決如何構(gòu)造出具有良好性質(zhì)及好的效果的邊緣檢測(cè)算子的問題1。在通常情況下,可以將信號(hào)中的奇異點(diǎn)和突交點(diǎn)認(rèn)為是圖像中的邊緣點(diǎn),其附近灰度的變化情況可從它相鄰像素灰度分布的梯度來(lái)反映。根據(jù)這一特點(diǎn),提出了多種邊緣檢測(cè)算子:如Robert算子、Sobel算子、Prewitt算子、Laplacian算子等。這些方法多是以待處理像素為中心的鄰域作為進(jìn)行灰度分析的基礎(chǔ),實(shí)現(xiàn)對(duì)圖像邊緣的提取并已經(jīng)取得了較好的處理效果。但這類方法同時(shí)也存在有邊緣像素寬、噪聲干擾較嚴(yán)重等缺點(diǎn),即使采用一些輔助的方法加以去噪,也相應(yīng)的會(huì)帶來(lái)邊緣

12、模糊等難以克服的缺陷。解決該問題的豐要方法就是設(shè)置閾值,把得到的圖像高頻部分與閾值相比較以達(dá)到去噪的目的,所以閾值的選取顯得尤為重要2。傳統(tǒng)方法中的閾值都是通過(guò)實(shí)驗(yàn)確定的,沒有統(tǒng)一的閾值選取方法。本文利用邊緣的最大后驗(yàn)概率估計(jì),介紹一種新的邊緣估計(jì)方法,從理論上說(shuō)明了怎樣選取最佳閾值。圖像的大部分主要信息都存在于圖像的邊緣中,主要表現(xiàn)為圖像局部特征的不連續(xù)性,是圖像中灰度變化比較劇烈的地方,即通常所說(shuō)的信號(hào)發(fā)生奇異變化的地方。奇異信號(hào)沿邊緣走向的灰度變化劇烈,通常將邊緣劃分為階躍狀和屋頂狀兩種類型如圖1所示。階躍邊緣中兩邊的灰度值有明顯的變化;而屋頂狀邊緣位于灰度增加與減少的交界處。在數(shù)學(xué)上可

13、利用灰度的導(dǎo)數(shù)來(lái)刻畫邊緣點(diǎn)的變化,對(duì)階躍邊緣、屋頂狀邊緣分別求其一階、二階導(dǎo)數(shù)3。圖1 階躍邊緣和屋頂狀邊緣處一階和二階導(dǎo)數(shù)變化規(guī)律(其中第一排為理想信號(hào),第二排對(duì)應(yīng)實(shí)際信號(hào))對(duì)一個(gè)邊緣來(lái)說(shuō),有可能同時(shí)具有階躍和線條邊緣特性。例如在一個(gè)表面上,由一個(gè)平面變化到法線方向不同的另一個(gè)平面就會(huì)產(chǎn)生階躍邊緣;如果這一表面具有鏡面反射特性且兩平面形成的棱角比較圓滑,則當(dāng)棱角圓滑表面的法線經(jīng)過(guò)鏡面反射角時(shí),由于鏡面反射分量,在棱角圓滑表面上會(huì)產(chǎn)生明亮光條,這樣的邊緣看起來(lái)像在階躍邊緣上疊加了一個(gè)線條邊緣由于邊緣可能與場(chǎng)景中物體的重要特征對(duì)應(yīng),所以它是很重要的圖像特征。比如,一個(gè)物體的輪廓通常產(chǎn)生階躍邊緣,

14、因?yàn)槲矬w的圖像強(qiáng)度不同于背景的圖像強(qiáng)度。論文選題來(lái)源于在圖像工程中占有重要的地位和作用的實(shí)際應(yīng)用課題。所謂圖像工程學(xué)科是指將數(shù)學(xué)、光學(xué)等基礎(chǔ)學(xué)科的原理,結(jié)合在圖像應(yīng)用中積累的技術(shù)經(jīng)驗(yàn)而發(fā)展起來(lái)的學(xué)科。圖像工程的內(nèi)容非常豐富,根據(jù)抽象程度和研究方法等的不同分為三個(gè)層次:圖像處理,圖像分析和圖像理解。如圖2所示,在圖中,圖像分割處于圖像分析與圖像處理之間,其含義是,圖像分割是從圖像處理進(jìn)到圖像分析的關(guān)鍵步驟,也是進(jìn)一步理解圖像的基礎(chǔ)。圖像工程圖像處理圖像分析圖像理解圖像分割圖2 圖像分割在圖像工程中的地位和作用圖像分割對(duì)特征有重要影響。圖像分割及基于分割的目標(biāo)表達(dá)、特征提取和參數(shù)測(cè)量等將原始圖像轉(zhuǎn)

15、化為更抽象更緊湊的形式,使得更高層的圖像分析和理解成為可能。而邊緣檢測(cè)是圖像分割的核心內(nèi)容,所以邊緣檢測(cè)在圖像工程中占有重要的地位和作用。因此邊緣檢測(cè)的研究一直是圖像技術(shù)研究中熱點(diǎn)和焦點(diǎn),而且人們對(duì)其的關(guān)注和投入不斷提高。本文的主要工作如下:(1)本文對(duì)圖像邊緣檢測(cè)作了一個(gè)概要的說(shuō)明,并說(shuō)明了進(jìn)行圖像邊緣檢測(cè)的重要意義。(2)系統(tǒng)的介紹了比較經(jīng)典的基于一階微分的圖像邊緣檢測(cè)算子及其具體的實(shí)現(xiàn)原理,為介紹基于二階微分的圖像邊緣檢測(cè)算子做鋪墊,以便于大家的理解。(3)系統(tǒng)介紹了比較經(jīng)典的基于二階微分的圖像邊緣檢測(cè)算子及其具體的實(shí)現(xiàn)原理。(4)介紹了一種基于Sobel算子的改進(jìn)型算法,此方法的最大優(yōu)

16、點(diǎn)是:在去噪的同時(shí)有效地保留了圖像的真實(shí)邊緣,即給出了邊緣檢測(cè)的最佳結(jié)果。(5)對(duì)上述的算法用Matlab為工具進(jìn)行仿真,并對(duì)其仿真結(jié)果進(jìn)行分析,分析各種算法的特點(diǎn)。1 基于一階微分的邊緣檢測(cè)算法1.1 Roberts算子由Roberts提出的算子是一種利用局部差分算子尋找邊緣的算子,對(duì)于邊界陡峭且噪比較小的圖像檢測(cè)效果比較好,它在2×2鄰域上計(jì)算對(duì)角導(dǎo)數(shù),Gi,j又稱為Roberts交叉算子。在實(shí)際應(yīng)用中,為簡(jiǎn)化運(yùn)算,用梯度函數(shù)的Roberts絕對(duì)值來(lái)近似:用卷積模板,上式變成:其中Gx和Gy由下面圖3所示的模板計(jì)算:圖3 Robert邊緣檢測(cè)算子的模板Roberts算子是該點(diǎn)連續(xù)

17、梯度的近似值,而不是所預(yù)期的點(diǎn)處的近似值。由上面兩個(gè)卷積算子對(duì)圖像運(yùn)算后,代入(1-3)式,可求得圖像的梯度幅度值Gi,j,然后選取適當(dāng)?shù)拈T限TH,作如下判斷:Gi,j>TH,i,j為階躍狀邊緣點(diǎn),Gi,j為一個(gè)二值圖像,也就是圖像的邊緣。由于利用局部差分檢測(cè)比較陡峭的邊緣,但對(duì)于噪聲比較敏感,經(jīng)常會(huì)出現(xiàn)孤立點(diǎn),于是人們又提出了Prewitt算子4。1.2 Prewitt算子為在檢測(cè)邊緣的同時(shí)減少噪聲的影響,Prewitt算子從加大邊緣檢測(cè)算子出發(fā)。由2×2擴(kuò)大到3×3來(lái)計(jì)算差分算子,所以其卷積模板為圖4所示:圖4 Prewitt邊緣檢測(cè)算子的模板在圖像中的每個(gè)像素位

18、置都用這2個(gè)模板做卷積,Prewitt算子將方向差分運(yùn)算與局部平均結(jié)合起來(lái),表達(dá)式如下:根據(jù)(1-4)和(1-5)式可以計(jì)算Prewitt梯度,選取適當(dāng)?shù)拈撝礣,對(duì)梯度圖像二值化,得到一幅邊緣二值圖像。采用Prewitt算子不僅能檢測(cè)邊緣點(diǎn),而且還能抵制噪聲的影響5。1.3 Kirsch算子1971年,提出了一種能檢測(cè)邊緣方向的Kirsch算子新方法:它使用了8個(gè)模板來(lái)確定梯度幅度值和梯度的方向。Kirsch算子是用一組模板對(duì)圖像中同一像素求卷積,選取其中最大的值作為邊緣強(qiáng)度,而將與之對(duì)應(yīng)的方向作為邊緣方向6。常用的八方向Kirsch模板各方向間的夾角為45度,模板如圖5所示:圖5 Kirsc

19、h邊緣檢測(cè)算子的模板上述算子都是計(jì)算一階導(dǎo)數(shù)的邊緣檢測(cè)器。其基本思想都是:如果所求的一階導(dǎo)數(shù)高于某一閾值,則確定該點(diǎn)為邊緣點(diǎn)。但是這樣做會(huì)導(dǎo)致檢測(cè)的邊緣點(diǎn)太多。總的來(lái)說(shuō),造成這些算子不能準(zhǔn)確判定邊緣的存在及正確位置的原因在于:(1)實(shí)際的邊緣灰度與理想的邊緣灰度值間存在差異,這類算子可能檢測(cè)出多個(gè)邊緣。(2)邊緣存在的尺度范圍各不相同,這類算子固定的大小不利于檢測(cè)出不同尺度上的所有邊緣。(3)對(duì)噪聲比較敏感為了解決這一問題,發(fā)展并產(chǎn)生了平滑濾波邊緣檢測(cè)方法,也就是邊緣檢測(cè)中理論最成熟的線性濾波方法,也稱線性邊緣檢測(cè)算子。在線性濾波邊緣檢測(cè)方法中,最具代表性的是Marr-Hildreth提出的L

20、oG(Laplacian of Gaussian)算法、Canny最優(yōu)算子的邊緣檢測(cè)方法7。2 基于二階微分的邊緣檢測(cè)算法2.1 Laplacian算子拉普拉斯算子是二階導(dǎo)數(shù)的二維等效式。函數(shù)f(x,y)的拉普拉斯算子公式為:使用差分方程對(duì)x和y方向上的二階偏導(dǎo)數(shù)近似如下:這一近似式是以點(diǎn)fi,j+1為中心的,用j-1替換j得到它是以點(diǎn)i,j為中心的二階偏導(dǎo)數(shù)的理想近似式,類似地,把式(2-3)和式(2-4)合并為一個(gè)算子,就成為式(2-5)能用來(lái)近似拉普拉斯算子的模板:有時(shí)候希望鄰域中心點(diǎn)具有更大的權(quán)值,比如下面式(2-6)的模板就是一種基于這種思想的近似拉普拉斯算子:當(dāng)拉普拉斯算子輸出出現(xiàn)

21、過(guò)零點(diǎn)時(shí)就表明有邊緣存在,其中忽略無(wú)意義的過(guò)零點(diǎn)(均勻零區(qū))。原則上,過(guò)零點(diǎn)的位置精度可以通過(guò)線性內(nèi)插方法精確到子像素分辨率,不過(guò)由于噪聲,以及由噪聲引起的邊緣兩端的不對(duì)稱性,結(jié)果可能不會(huì)很精確8??紤]圖6所給的例子。圖中表明了對(duì)一幅具有簡(jiǎn)單階躍邊緣的圖像進(jìn)行拉普拉斯運(yùn)算的結(jié)果。輸出圖像中的一行是:在本例中,對(duì)應(yīng)于原始圖像邊緣的零交叉點(diǎn)位于兩個(gè)中心像素點(diǎn)之間。因此,邊緣可以用其左邊的像素或右邊的像素來(lái)標(biāo)記,但整幅圖像的標(biāo)記必須一致。在多數(shù)情況下,零交叉點(diǎn)很少恰好在兩像素點(diǎn)中間,因此邊緣的實(shí)際位置要通過(guò)內(nèi)插值來(lái)確定。圖6 (a)為包含垂直階躍邊緣的圖像 (b)為垂直方向的階躍邊緣拉普拉斯響應(yīng)現(xiàn)在

22、考慮一下圖7所示的例子。該圖給出了拉普拉斯算法對(duì)斜坡邊緣的響應(yīng),其中的一行輸出是:零交叉點(diǎn)直接對(duì)應(yīng)著圖像中的一個(gè)像素點(diǎn)。當(dāng)然,這是一種理想情況,圖像邊緣的實(shí)際情況要比這個(gè)復(fù)雜的多。圖7 (a)為包含垂直斜坡邊緣的圖像(b)為垂直方向的斜坡邊緣拉普拉斯響應(yīng)拉普拉斯算子有兩個(gè)缺點(diǎn):其一是邊緣方向信息的丟失,其二是它是二階差分,雙倍加強(qiáng)了圖像中噪聲影響。所以,后來(lái)才有人提出了改進(jìn)的LoG算法。2.2 LoG算子正如上面所提到的,利用圖像強(qiáng)度二階導(dǎo)數(shù)的零交叉點(diǎn)來(lái)求邊緣點(diǎn)的算法對(duì)噪聲十分敏感。所以,希望在邊緣增強(qiáng)前濾除噪聲。為此,Marr和Hildreth將高斯濾波和拉普拉斯邊緣檢測(cè)結(jié)合在一起,形成Lo

23、G(Laplaciall of GausSian,LoG)算法,也有人稱之為拉普拉斯高斯算法。LoG算法理論是從生物視覺理論導(dǎo)出的方法。其基本思想是:首先在一定范圍內(nèi)做平滑濾波,然后利用差分算子檢測(cè)在相應(yīng)尺度上的邊緣。濾波器的選擇取決于兩個(gè)因素,一是要求濾波器在空間上平穩(wěn),空間位置誤差要小,二是要求平滑濾波器本身是帶通濾波器,在其有限帶通內(nèi)是平穩(wěn)的,即要求頻域誤差要小。由信號(hào)處理中的測(cè)不準(zhǔn)原理知,x與是矛盾的,達(dá)到測(cè)不準(zhǔn)下限的濾波器是高斯濾波器。Marr和Hildreth提出的差分算子是各向同性的拉普拉斯二階差分算子。LoG邊緣檢測(cè)器的基本特征是(1)平滑濾波器是高斯濾波器(2)增強(qiáng)步驟采用二

24、階導(dǎo)數(shù)(二維拉普拉斯函數(shù))(3)邊緣檢測(cè)判據(jù)是二階導(dǎo)數(shù)零交叉點(diǎn)并對(duì)應(yīng)一階導(dǎo)數(shù)的較大峰值這種方法的特點(diǎn)是圖像首先與高斯濾波器進(jìn)行卷積,這一步既平滑了圖像又降低了噪聲,孤立的噪聲點(diǎn)和較小的結(jié)構(gòu)組織將被濾除9。由于平滑會(huì)導(dǎo)致邊緣的延展,因此邊緣檢測(cè)器只考慮那些具有局部梯度最大值的點(diǎn)為邊緣點(diǎn),這一點(diǎn)可以用二階導(dǎo)數(shù)的零交叉點(diǎn)來(lái)實(shí)現(xiàn)。拉普拉斯函數(shù)用作二維二階導(dǎo)數(shù)的近似,是因?yàn)樗且环N無(wú)方向算子。為了避免檢測(cè)出非顯著邊緣,應(yīng)選擇一階導(dǎo)數(shù)大于某一閾值的零交叉點(diǎn)作為邊緣點(diǎn)10。LoG算子的輸出h(x,y)是通過(guò)卷積運(yùn)算得到的:根據(jù)卷積求導(dǎo)法有:其中:稱之為墨西哥草帽算子。由以上分析知,下面兩種方法在數(shù)學(xué)上是等價(jià)

25、的:(1)求圖像與高斯濾波器卷積,再求卷積的拉普拉斯變換(2)求高斯濾波器的拉普拉斯變換,再求與圖像的卷積如果采用第一種方法,就要用到高斯平滑濾波器。直接實(shí)現(xiàn)LoG算法的典型模板見圖8。圖8 典型拉普拉斯高斯模板濾波(通常是平滑)、增強(qiáng)、檢測(cè)這三個(gè)邊緣檢測(cè)步驟對(duì)使用LoG邊緣檢測(cè)仍然成立,其中平滑是用高斯濾波器來(lái)完成的;增強(qiáng)是將邊緣轉(zhuǎn)換成零交叉點(diǎn)來(lái)實(shí)現(xiàn)的;邊緣檢測(cè)則是通過(guò)檢測(cè)零交叉點(diǎn)來(lái)進(jìn)行的。可以看到,零交叉點(diǎn)的斜率依賴于圖像強(qiáng)度在穿過(guò)邊緣時(shí)的變化對(duì)比度。剩下的問題是把那些由不同尺度算子檢測(cè)到的邊緣組合起來(lái)。在上述方法中,邊緣是在特定的分辨下得到的。為了從圖像中得到真正的邊緣,有必要把那些通過(guò)

26、不同尺度算子得到的信息組合起來(lái)。這里介紹一下尺度空間概念。高斯平滑運(yùn)算導(dǎo)致圖像中邊緣和其它尖銳不連續(xù)部分的模糊,其中模糊量取決于的值。值越大,噪聲濾波效果越好,但同時(shí)也丟失了重要的邊緣信息,影響了邊緣檢測(cè)器的性能。如果用小尺度的濾波器,又有可能平滑不完全而留有太多的噪聲。大尺度濾波器在平滑相互鄰近的兩個(gè)邊緣時(shí),可能會(huì)將它們連在一起,這樣只能檢測(cè)出一個(gè)邊緣。因此,在不知道物體尺度和位置的情況下,很難準(zhǔn)確確定濾波器的尺度11。2.3 Canny算子Canny檢測(cè)階躍邊緣的基本思想是在圖像中找出具有局部最大梯度幅值的像素點(diǎn)。檢測(cè)階躍邊緣的大部分工作集中在尋找能夠用于實(shí)際圖像的梯度數(shù)字逼近。由于實(shí)際的

27、圖像經(jīng)過(guò)了攝像機(jī)光學(xué)系統(tǒng)和電路系統(tǒng)(帶寬限制)固有的低通濾波器的平滑,因此,圖像中的階躍邊緣不是十分陡立。圖像也受到攝像機(jī)噪聲和場(chǎng)景中不希望的細(xì)節(jié)的干擾。圖像梯度逼近必須滿足兩個(gè)要求:首先逼近必須能夠抑制噪聲效應(yīng);其次必須盡量精確地確定邊緣的位置。抑制噪聲和邊緣精確定位是無(wú)法同時(shí)得到滿足的,也就是說(shuō),邊緣檢測(cè)算法通過(guò)圖像平滑算子去除了噪聲,但卻增加了邊緣定位的不確定性;反過(guò)來(lái),若提高邊緣檢測(cè)算子對(duì)邊緣的敏感性,同時(shí)也提高了對(duì)噪聲的敏感性。有一種線性算子可以在抗噪聲干擾和精確定位之間提供最佳折衷方案,它就是高斯函數(shù)的一階導(dǎo)數(shù)。Canny根據(jù)檢測(cè)的要求,定義了下面三個(gè)最優(yōu)準(zhǔn)則:(1)最優(yōu)檢測(cè)。對(duì)真

28、實(shí)邊緣不漏檢,非邊緣點(diǎn)不錯(cuò)檢,即要求輸出信噪比最大。(2)最優(yōu)檢測(cè)精度。檢測(cè)的邊緣點(diǎn)的位置距實(shí)際的邊緣點(diǎn)的位置最近。(3)檢測(cè)點(diǎn)與邊緣點(diǎn)一一對(duì)應(yīng)。每一個(gè)實(shí)際存在的邊緣點(diǎn)和檢測(cè)的邊緣點(diǎn)是一一對(duì)應(yīng)的關(guān)系。Canny首次將上述判據(jù)用是數(shù)學(xué)的形式表示出來(lái),然后采用最優(yōu)化數(shù)值方法,得到最佳邊緣檢測(cè)模板。對(duì)于二維圖像,需要使用若干方向的模板分別對(duì)圖像進(jìn)行卷積處理,再取最可能的邊緣方向。現(xiàn)在對(duì)Canny邊緣檢測(cè)器作一概括說(shuō)明。用fi,j表示圖像。使用可分離濾波方法求圖像與高斯平滑濾波器卷積,得到的結(jié)果是一個(gè)已平滑數(shù)據(jù)陣列。其中Gi,j;代表一個(gè)高斯濾波的過(guò)程,而是高斯函數(shù)的標(biāo)準(zhǔn)差,它控制著平滑程度。已平滑數(shù)

29、據(jù)陣列Si,j的梯度可以使用2×2一階有限差分近似式來(lái)計(jì)算x與y偏導(dǎo)數(shù)的兩個(gè)陣列Pi,j與Qi,j:在這個(gè)2×2正方形內(nèi)求有限差分的均值,以便在圖像中的同一點(diǎn)計(jì)算x和y的偏導(dǎo)數(shù)梯度。幅值和方位角可用直角坐標(biāo)到極坐標(biāo)的坐標(biāo)轉(zhuǎn)化公式來(lái)計(jì)算:其中,反正切函數(shù)包含了兩個(gè)參量,它表示一個(gè)角度,其取值范圍是整個(gè)圓周范圍內(nèi)。為高效率地計(jì)算這些函數(shù),盡量不用浮點(diǎn)運(yùn)算。梯度的幅度和方向也可以通過(guò)查找表由偏導(dǎo)數(shù)計(jì)算。反正切函數(shù)的大多數(shù)計(jì)算使用的是定點(diǎn)運(yùn)算,很少的幾個(gè)計(jì)算是基本浮點(diǎn)運(yùn)算,其中的浮點(diǎn)運(yùn)算是由整數(shù)和定點(diǎn)算術(shù)通過(guò)軟件實(shí)現(xiàn)的。在上式中,Mi,j反映了圖像上的點(diǎn)i,j處的邊緣強(qiáng)度,

30、0579;i,j是圖像點(diǎn)i,j的法向矢量,正交于邊緣方向。根據(jù)Canny的定義,中心邊緣點(diǎn)為算子Gi,j;與圖像fi,j的卷積在邊緣梯度方向上的最大值,這樣就可以在每一個(gè)點(diǎn)的梯度方向上判斷此點(diǎn)強(qiáng)度是否為其鄰域的最大值來(lái)確定該點(diǎn)是否為邊緣點(diǎn)。當(dāng)一個(gè)像素滿足下面三個(gè)條件時(shí),則被認(rèn)為是圖像的邊緣點(diǎn):(1)該點(diǎn)的邊緣強(qiáng)度大于沿該點(diǎn)梯度方向的兩個(gè)相鄰像素點(diǎn)的邊緣強(qiáng)度(2)與該點(diǎn)梯度方向上相鄰兩點(diǎn)的方向差小于(3)以該點(diǎn)為中心的3×3鄰域中的邊緣強(qiáng)度極大值小于某個(gè)閾值Canny給出的這三個(gè)判據(jù)具有廣泛的代表意義12。3 最佳Sobel邊緣檢測(cè)方法3.1 Sobel圖像邊緣檢測(cè)方法傳統(tǒng)的Sobel

31、圖像邊緣檢測(cè)方法,是在圖像空間利用兩個(gè)方向模板與圖像進(jìn)行鄰域卷積來(lái)完成的。這兩個(gè)方向模板一個(gè)檢測(cè)垂直邊緣,一個(gè)檢測(cè)水平邊緣,如圖9所示。圖中,模板內(nèi)的數(shù)字為模板系數(shù),梯度方向與邊緣方向總是正交水平邊緣Sobel算子垂直邊緣Sobel算子圖9 Sobel算子模板元素和窗口像素之間的對(duì)應(yīng)關(guān)系(以3×3窗口為例)定義如下:設(shè)窗口灰度為:模板卷積計(jì)算就是下式求乘積和的過(guò)程:式中,i=1,2分別代表垂直和水平模板。為模板卷積法邊緣檢測(cè)的輸出,L為窗口寬度,對(duì)3×3窗口,l=1。將兩個(gè)卷積結(jié)果的最大值,賦給圖像中對(duì)應(yīng)模板中心位置的像素,作為該像素的新灰度值,即:3.2 改進(jìn)的Sobel

32、邊緣檢測(cè)方法一種改進(jìn)的Sobel邊緣檢測(cè)方法,就是在節(jié)中兩個(gè)模板的基礎(chǔ)上,又增加六個(gè)方向的模板,即45°,135°,180°,225°,270°,315°,具體如圖10所示。這樣可以更加有效地檢測(cè)圖像多個(gè)方向的邊緣,使邊緣信息更加完整。上面式(3-2)、式(3-3)中的i=1,2,8代表圖中的八個(gè)方向13。圖10 邊緣檢測(cè)的八個(gè)方向模板3.3 Sobel算子的最佳閾值選取盡管八方向的Sobel算子可以得到更完整的邊緣信息,但是和Sobel算子一樣,它們的抗噪聲能力都較差,即對(duì)于疊加噪聲圖像的邊緣檢測(cè)效果很不理想。解決該問題的一個(gè)方法就

33、是設(shè)定一個(gè)閾值,然后與經(jīng)過(guò)Sobel算子檢測(cè)后的邊緣值進(jìn)行比較,當(dāng)其幅值大于該閾值時(shí)定義為邊緣,反之取為零,如式(3-4)所示。由此可以看出,閾值T的選取至關(guān)重要。然而怎樣選擇閾值卻是一個(gè)比較難的問題,因?yàn)樵跀?shù)字圖像中無(wú)用的背景數(shù)據(jù)和目標(biāo)數(shù)據(jù)常常混在一起,此外在圖像中還有噪聲的影響。如果閾值選得偏低,則會(huì)有較多的噪聲被保留而影響邊緣的質(zhì)量;如果閾值選的偏高,則會(huì)使那些灰度值較小的邊緣丟失,破壞邊緣的連續(xù)性。上述方法的閾值一般是通過(guò)實(shí)驗(yàn)的方法決定的,因此很難得到一個(gè)最佳結(jié)果14。本節(jié)將給出一種新的邊緣估計(jì)方法,通過(guò)它可以確定最佳閾值。為此,假設(shè)經(jīng)過(guò)Sobel算子檢測(cè)后的圖像可以表示成:其中,是原

34、始圖像的邊緣部分,是均值為0,方差為的Guass白噪聲。由于經(jīng)過(guò)Sobel算子檢測(cè)后的邊緣為圖像的高頻分量,而圖像的高頻分量一般服從拉普拉斯分布,其概率密度函數(shù)為:其中,為的標(biāo)準(zhǔn)差。基于式(3-5)出的信號(hào)模型,可以推出的最大后驗(yàn)概率估計(jì)(Maximum a Posteriori:MAP)為:其中,(3-7)式給出的邊緣估計(jì)方法在小波域稱為軟門限去噪法,因此可以認(rèn)定即為所需要的最佳閾值??梢钥闯觯?3-7)式和(3-8)式所給出的邊緣估計(jì)的特點(diǎn)是:當(dāng)圖像邊緣的幅值大于閾值時(shí),邊緣的估計(jì)值為邊緣幅值減去閾值。因此,具有更強(qiáng)的去噪功能。為了由(3-7)式得到邊緣信號(hào)的最佳估計(jì),首先需要確定的值。

35、因此要分別估計(jì)出和的值。假定圖像大小為M×M,那么的值可以用中值法估計(jì):其中median·表示取中值的運(yùn)算。這樣,注意到及就可以得到把上面的(3-9),(3-12)給出的和,的估計(jì)值代入(3-7),就可以得到閾值,即最佳閾值。上述方法的最大優(yōu)點(diǎn)是:在去噪的同時(shí)有效地保留了圖像的真實(shí)邊緣,即給出了邊緣檢測(cè)的最佳結(jié)果15。4 基于Matlab的實(shí)驗(yàn)結(jié)果與分析4.1 Matlab簡(jiǎn)介在科學(xué)研究和工程應(yīng)用中,往往要進(jìn)行大量的數(shù)學(xué)計(jì)算,其中包括矩陣運(yùn)算。這些運(yùn)算一般來(lái)說(shuō)難以用手工精確和快捷地進(jìn)行,而要借助計(jì)算機(jī)編制相應(yīng)的程序做近似計(jì)算。目前流行用Basic、Fortran和C語(yǔ)言編制

36、計(jì)算程序,既需要對(duì)有關(guān)算法有深刻的了解,還需要熟練地掌握所用語(yǔ)言的語(yǔ)法及編程技巧。對(duì)多數(shù)科學(xué)工作者而言,同時(shí)具備這兩方面技能有一定困難。通常,編制程序也是繁雜的,不僅消耗人力與物力,而且影響工作進(jìn)程和效率。為克服上述困難,美國(guó)Mathwork公司于1967年推出了“Matrix Laboratory”(縮寫為Matlab)軟件包,并不斷更新和擴(kuò)充。目前最新的版本(windows環(huán)境)是一種功能強(qiáng)、效率高便于進(jìn)行科學(xué)和工程計(jì)算的交互式軟件包。其中包括:一般數(shù)值分析、矩陣運(yùn)算、數(shù)字信號(hào)處理、建模和系統(tǒng)控制和優(yōu)化等應(yīng)用程序,并集應(yīng)用程序和圖形于一體便于使用的集成環(huán)境中。在此環(huán)境下所解問題的Matla

37、b語(yǔ)言表述形式和其數(shù)學(xué)表達(dá)形式相同,不需要按傳統(tǒng)的方法編程。不過(guò),Matlab作為一種新的計(jì)算機(jī)語(yǔ)言,要想運(yùn)用自如,充分發(fā)揮它的威力,也需先系統(tǒng)地學(xué)習(xí)它。但由于使用Matlab編程運(yùn)算與人進(jìn)行科學(xué)計(jì)算的思路和表達(dá)方式完全一致,所以不象學(xué)習(xí)其它高級(jí)語(yǔ)言如Basic、Fortran和C等那樣難于掌握16。實(shí)踐證明,你可在幾十分鐘的時(shí)間內(nèi)學(xué)會(huì)Matlab的基礎(chǔ)知識(shí),在短短幾個(gè)小時(shí)的使用中就能初步掌握它.從而使你能夠進(jìn)行高效率和富有創(chuàng)造性的計(jì)算。Matlab大大降低了對(duì)使用者的數(shù)學(xué)基礎(chǔ)和計(jì)算機(jī)語(yǔ)言知識(shí)的要求,而且編程效率和計(jì)算效率極高,還可在計(jì)算機(jī)上直接輸出結(jié)果和精美的圖形拷貝,所以它的確為一高效的科

38、研助手。自推出后即風(fēng)行美國(guó),流傳世界17。綜上所述,Matlab語(yǔ)言有如下特點(diǎn):(1)編程效率高它是一種面向科學(xué)與工程計(jì)算的高級(jí)語(yǔ)言,允許用數(shù)學(xué)形式的語(yǔ)言編寫程序,且比Basic、Fortran和C等語(yǔ)言更加接近書寫計(jì)算公式的思維方式,用Matlab編寫程序猶如在演算紙上排列出公式與求解問題。因此,Matlab語(yǔ)言也可通俗地稱為演算紙式科學(xué)算法語(yǔ)言由于它編寫簡(jiǎn)單,所以編程效率高,易學(xué)易懂。(2)用戶使用方便Matlab語(yǔ)言是一種解釋執(zhí)行的語(yǔ)言(在沒被專門的工具編譯之前),它靈活、方便,其調(diào)試程序手段豐富,調(diào)試速度快,需要學(xué)習(xí)時(shí)間少。人們用任何一種語(yǔ)言編寫程序和調(diào)試程序一般都要經(jīng)過(guò)四個(gè)步驟:編輯

39、、編譯、連接以及執(zhí)行和調(diào)試。各個(gè)步驟之間是順序關(guān)系,編程的過(guò)程就是在它們之間作瀑布型的循環(huán)。Matlab語(yǔ)言與其它語(yǔ)言相比,較好地解決了上述問題,把編輯、編譯、連接和執(zhí)行融為一體。它能在同一畫面上進(jìn)行靈活操作快速排除輸入程序中的書寫錯(cuò)誤、語(yǔ)法錯(cuò)誤以至語(yǔ)意錯(cuò)誤,從而加快了用戶編寫、修改和調(diào)試程序的速度,可以說(shuō)在編程和調(diào)試過(guò)程中它是一種比VB還要簡(jiǎn)單的語(yǔ)言。具體地說(shuō),Matlab運(yùn)行時(shí),如直接在命令行輸入Mailab語(yǔ)句(命令),包括調(diào)用M文件的語(yǔ)句,每輸入一條語(yǔ)句,就立即對(duì)其進(jìn)行處理,完成績(jī)譯、連接和運(yùn)行的全過(guò)程。又如,將Matlab源程序編輯為M文件,由于Mat1ab磁盤文件也是M文件,所以編

40、輯后的源文件就可直接運(yùn)行,而不需進(jìn)行編譯和連接。在運(yùn)行M文件時(shí),如果有錯(cuò),計(jì)算機(jī)屏幕上會(huì)給出詳細(xì)的出鍺信息,用戶經(jīng)修改后再執(zhí)行,直到正確為止。所以可以說(shuō),Mat1ab語(yǔ)言不僅是一種語(yǔ)言,廣義上講是一種該語(yǔ)言開發(fā)系統(tǒng),即語(yǔ)言調(diào)試系統(tǒng)。(3)擴(kuò)充能力強(qiáng)高版本的Matlab語(yǔ)言有豐富的庫(kù)函數(shù),在進(jìn)行復(fù)雜的數(shù)學(xué)運(yùn)算時(shí)可以直接調(diào)用,而且Matlab的庫(kù)函數(shù)同用戶文件在形成上一樣,所以用戶文件也可作為Matlab的庫(kù)函數(shù)來(lái)調(diào)用。因而,用戶可以根據(jù)自己的需要方便地建立和擴(kuò)充新的庫(kù)函數(shù),以便提高M(jìn)atlab使用效率和擴(kuò)充它的功能。另外,為了充分利用Fortran、C等語(yǔ)言的資源,包括用戶已編好的Fortran

41、,C語(yǔ)言程序,通過(guò)建立Me調(diào)文件的形式,混合編程,方便地調(diào)用有關(guān)的Fortran,C語(yǔ)言的子程序。(4)語(yǔ)句簡(jiǎn)單,內(nèi)涵豐富Mat1ab語(yǔ)言中最基本最重要的成分是函數(shù),其一般形式為a,b,c=fun(d,e,f,),即一個(gè)函數(shù)由函數(shù)名,輸入變量d,e,f,和輸出變量a,b,c組成,同一函數(shù)名F,不同數(shù)目的輸入變量(包括無(wú)輸入變量)及不同數(shù)目的輸出變量,代表著不同的含義(有點(diǎn)像面向?qū)ο笾械亩鄳B(tài)性。這不僅使Matlab的庫(kù)函數(shù)功能更豐富,而大大減少了需要的磁盤空間,使得Matlab編寫的M文件簡(jiǎn)單、短小而高效。(5)高效方便的矩陣和數(shù)組運(yùn)算Matlab語(yǔ)言象Basic、Fortran和C語(yǔ)言一樣規(guī)定

42、了矩陣的算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、條件運(yùn)算符及賦值運(yùn)算符,而且這些運(yùn)算符大部分可以毫無(wú)改變地照搬到數(shù)組間的運(yùn)算,有些如算術(shù)運(yùn)算符只要增加“·”就可用于數(shù)組間的運(yùn)算,另外,它不需定義數(shù)組的維數(shù),并給出矩陣函數(shù)、特殊矩陣專門的庫(kù)函數(shù),使之在求解諸如信號(hào)處理、建模、系統(tǒng)識(shí)別、控制、優(yōu)化等領(lǐng)域的問題時(shí),顯得大為簡(jiǎn)捷、高效、方便,這是其它高級(jí)語(yǔ)言所不能比擬的。在此基礎(chǔ)上,高版本的Matlab已逐步擴(kuò)展到科學(xué)及工程計(jì)算的其它領(lǐng)域。因此,不久的將來(lái),它一定能名符其實(shí)地成為“萬(wàn)能演算紙式的”科學(xué)算法語(yǔ)言。(6)方便的繪圖功能Matlab的繪圖是十分方便的,它有一系列繪圖函數(shù)(命令),例如線

43、性坐標(biāo)、對(duì)數(shù)坐標(biāo),半對(duì)數(shù)坐標(biāo)及極坐標(biāo),均只需調(diào)用不同的繪圖函數(shù)(命令),在圖上標(biāo)出圖題、XY軸標(biāo)注,格(柵)繪制也只需調(diào)用相應(yīng)的命令,簡(jiǎn)單易行。另外,在調(diào)用繪圖函數(shù)時(shí)調(diào)整自變量可繪出不變顏色的點(diǎn)、線、復(fù)線或多重線。這種為科學(xué)研究著想的設(shè)計(jì)是通用的編程語(yǔ)言所不及的??傊?,Matlab語(yǔ)言的設(shè)計(jì)思想可以說(shuō)代表了當(dāng)前計(jì)算機(jī)高級(jí)語(yǔ)言的發(fā)展方向,在不斷使用中,人們會(huì)發(fā)現(xiàn)它的巨大潛力18。4.2 一階微分算法的實(shí)驗(yàn)結(jié)果與分析4.2.1 實(shí)驗(yàn)程序清單Roberts算子程序:clcclear allclose allA = imread('cameraman.tif'); % 讀入圖像imsh

44、ow(A);title('原圖');x_mask = 1 0;0 -1; % 建立X方向的模板y_mask = rot90(x_mask); % 建立Y方向的模板I = im2double(A); % 將圖像數(shù)據(jù)轉(zhuǎn)化為雙精度dx = imfilter(I, x_mask); % 計(jì)算X方向的梯度分量dy = imfilter(I, y_mask); % 計(jì)算Y方向的梯度分量grad = sqrt(dx.*dx + dy.*dy); % 計(jì)算梯度grad = mat2gray(grad); % 將梯度矩陣轉(zhuǎn)換為灰度圖像level = graythresh(grad); % 計(jì)算灰

45、度閾值BW = im2bw(grad,level); % 用閾值分割梯度圖像figure, imshow(BW); % 顯示分割后的圖像即邊緣圖像title('Roberts')Prewitt算子程序:clcclear allclose allA = imread('cameraman.tif'); % 讀入圖像imshow(A);title('原圖');y_mask = -1 -1 -1;0 0 0;1 1 1; % 建立Y方向的模板x_mask = y_mask' % 建立X方向的模板I = im2double(A); % 將圖像數(shù)據(jù)

46、轉(zhuǎn)化為雙精度dx = imfilter(I, x_mask); % 計(jì)算X方向的梯度分量dy = imfilter(I, y_mask); % 計(jì)算Y方向的梯度分量grad = sqrt(dx.*dx + dy.*dy); % 計(jì)算梯度grad = mat2gray(grad); % 將梯度矩陣轉(zhuǎn)換為灰度圖像level = graythresh(grad); % 計(jì)算灰度閾值BW = im2bw(grad,level); % 用閾值分割梯度圖像figure, imshow(BW); % 顯示分割后的圖像即邊緣圖像title('Prewitt')Kirsch算子程序clcclea

47、r allclose allA = imread('cameraman.tif'); % 讀入圖像imshow(A);title('原圖');mask1=-3,-3,-3;-3,0,5;-3,5,5; % 建立方向模板mask2=-3,-3,5;-3,0,5;-3,-3,5;mask3=-3,5,5;-3,0,5;-3,-3,-3;mask4=-3,-3,-3;-3,0,-3;5,5,5;mask5=5,5,5;-3,0,-3;-3,-3,-3;mask6=-3,-3,-3;5,0,-3;5,5,-3;mask7=5,-3,-3;5,0,-3;5,-3,-3;m

48、ask8=5,5,-3;5,0,-3;-3,-3,-3;I = im2double(A); % 將數(shù)據(jù)圖像轉(zhuǎn)化為雙精度d1 = imfilter(I, mask1); % 計(jì)算8個(gè)領(lǐng)域的灰度變化d2 = imfilter(I, mask2);d3 = imfilter(I, mask3);d4 = imfilter(I, mask4);d5 = imfilter(I, mask5);d6 = imfilter(I, mask6);d7 = imfilter(I, mask7);d8 = imfilter(I, mask8);dd = max(abs(d1),abs(d2); %取差值變化最大的

49、元素組成灰度變化矩陣dd = max(dd,abs(d3);dd = max(dd,abs(d4);dd = max(dd,abs(d5);dd = max(dd,abs(d6);dd = max(dd,abs(d7);dd = max(dd,abs(d8);grad = mat2gray(dd); % 將灰度變化矩陣轉(zhuǎn)化為灰度圖像level = graythresh(grad); % 計(jì)算灰度閾值BW = im2bw(grad,level); % 用閾值分割梯度圖像figure, imshow(BW); % 顯示分割后的圖像,即邊緣圖像title('Kirsch')4.2.2

50、 實(shí)驗(yàn)結(jié)果以cameraman圖片為例,分別用Roberts、Prewitt和Kirsch三種算法,在無(wú)噪聲(圖11)和有高斯白噪聲(圖12)的環(huán)境下,分別給檢測(cè)結(jié)果。圖11對(duì)未加噪聲圖片的檢測(cè)結(jié)果圖12 對(duì)加入高斯白噪聲圖片的檢測(cè)結(jié)果4.2.3 實(shí)驗(yàn)結(jié)果分析通過(guò)圖11和圖12知,在圖像沒有噪聲的情況下,Roberts算子、Prewitt算子、Kirsch算子,都能夠比較準(zhǔn)確的檢測(cè)出圖像的邊緣。加入高斯白噪聲后,三種邊緣檢測(cè)算子的邊緣檢測(cè)效果都多少受到噪聲的干擾,檢測(cè)出大量的噪聲點(diǎn)和偽邊緣,甚至無(wú)法檢測(cè)出邊緣。Roberts算子受噪聲的影響最大,Kirsch算子、Prewitt算子受噪聲影響比

51、Roberts算子小。由于各種原因,圖像總是受到隨機(jī)噪聲的干擾,可以說(shuō)噪聲無(wú)處不在。經(jīng)典的邊緣檢測(cè)方法由于引入了各種形式的微分運(yùn)算,從而必然引起對(duì)噪聲的極度敏感,邊緣檢測(cè)的結(jié)果常常是把噪聲當(dāng)作邊緣點(diǎn)檢測(cè)出來(lái),而真正的邊緣也由于受到噪聲干擾而沒有檢測(cè)出來(lái)。對(duì)于有噪聲圖像來(lái)說(shuō),一種好的邊緣檢測(cè)方法應(yīng)該具有良好的噪聲抑制能力,同時(shí)又有完備的邊緣保持特性?;谝浑A微分的邊緣檢測(cè)算子具有實(shí)現(xiàn)簡(jiǎn)單、運(yùn)算速度快等特點(diǎn),但其檢測(cè)受噪聲的影響很大,檢測(cè)結(jié)果不可靠,不能準(zhǔn)確判定邊緣的存在及邊緣的準(zhǔn)確位置,造成這種情況的原因:(1)實(shí)際邊緣灰度與理想邊緣灰度值間存在差異,這類算子可能檢測(cè)出多個(gè)邊緣;(2)邊緣存在的

52、尺度范圍各不相同,這類算子固定的大小不利于檢測(cè)出不同尺度上的所有邊緣;(3)對(duì)噪聲都比較敏感。4.3 二階微分算法的實(shí)驗(yàn)結(jié)果與分析4.3.1 實(shí)驗(yàn)程序清單Laplacian算子程序:clcclear allclose allA = imread('cameraman.tif'); % 讀入圖像imshow(A);title('原圖'); mask=0,-1,0;-1,4,-1;0,-1,0; % 建立模板I = im2double(A); % 將數(shù)據(jù)圖像轉(zhuǎn)化為雙精度dx = imfilter(I, mask); % 計(jì)算梯度矩陣grad = mat2gray(d

53、x); % 將梯度矩陣轉(zhuǎn)化為灰度圖像BW = im2bw(grad,0.58); % 用閾值分割梯度圖像figure, imshow(BW); % 顯示分割后的圖像,即梯度圖像title('Laplacian')LoG算子程序:clcclear allclose allA = imread('cameraman.tif'); % 讀入圖像imshow(A);title('原圖');mask=0,0,-1,0,0;0,-1,-2,-1,0;-1,-2,16,-2,-1;0,-1,-2,-1,0;0,0,-1,0,0; % 建立模板I = im2do

54、uble(A); % 將數(shù)據(jù)圖像轉(zhuǎn)化為雙精度dx = imfilter(I, mask); % 計(jì)算梯度矩陣grad = mat2gray(dx); % 將梯度矩陣轉(zhuǎn)化為灰度圖像BW = im2bw(grad,0.58); % 用閾值分割梯度圖像figure, imshow(BW); % 顯示分割后的圖像,即梯度圖像title('log')Canny算子程序:clcclear allclose allI = imread('cameraman.tif');% 讀入圖像imshow(I);title('原圖')BW1 = edge(I,'c

55、anny'); % 調(diào)用canny函數(shù)figure,imshow(BW1);% 顯示分割后的圖像,即梯度圖像title('Canny')4.3.2 實(shí)驗(yàn)結(jié)果以cameraman圖片為例,分別用Laplacian、LoG和Canny三種算法,在無(wú)噪聲(圖13)和有高斯白噪聲(圖14)的環(huán)境下,分別給檢測(cè)結(jié)果。圖13對(duì)未加噪聲圖片的檢測(cè)結(jié)果圖14 對(duì)加入高斯白噪聲圖片的檢測(cè)結(jié)果4.3.3 實(shí)驗(yàn)結(jié)果分析由圖13和圖14可以看出Laplacian算子:對(duì)圖像中的階躍性邊緣點(diǎn)定位準(zhǔn)確,但是對(duì)噪聲非常敏感,丟失一部分邊緣的方向信息,造成一些不連續(xù)的檢測(cè)邊緣。LoG算子:首先用高斯函

56、數(shù)進(jìn)行濾波,然后使用Laplacian算子檢測(cè)邊緣,克服了Laplacian算子抗噪聲能力比較差的缺點(diǎn),LoG算子中高斯函數(shù)中方差參數(shù)的選擇很關(guān)鍵,越大避免了虛假邊緣的檢出,邊緣也被平滑造成邊緣點(diǎn)的丟失。越小,噪聲抑制能力相對(duì)下降,容易出現(xiàn)虛假邊緣。Canny:采用高斯函數(shù)對(duì)圖像進(jìn)行平滑處理,因此具有較強(qiáng)的噪聲抑制能力;同樣該算子也將一些高頻邊緣平滑掉,造成邊緣丟失,采用了雙閾值算法檢測(cè)和連接邊緣,邊緣的連續(xù)性較好。Laplacian算子是對(duì)二維函數(shù)進(jìn)行運(yùn)算的二階導(dǎo)數(shù)算子,與方向無(wú)關(guān),對(duì)取向不敏感,因而計(jì)算量要小。根據(jù)邊緣的特性,Laplacian算子可以作為邊緣提取算子,計(jì)算數(shù)字圖像的Lap

57、lacian值可以借助模板實(shí)現(xiàn),但是它對(duì)噪聲相當(dāng)敏感,它相當(dāng)于高通濾波,常會(huì)出現(xiàn)一些虛假邊緣。因此,Marr提出首先對(duì)圖像用Gauss函數(shù)進(jìn)行平滑,然后利用Laplacian算子對(duì)平滑的圖像求二階導(dǎo)數(shù)后得到的零交叉點(diǎn)作為候選邊緣,這就是LoG算子。LoG算子就是對(duì)圖像進(jìn)行濾波和微分的過(guò)程,是利用旋轉(zhuǎn)對(duì)稱的LoG模板與圖像做卷積,確定濾波器輸出的零交叉位置。Canny算子是一個(gè)具有濾波、增強(qiáng)和檢測(cè)的多階段的優(yōu)化算子。在進(jìn)行處理前,Canny算子先利用高斯平滑濾波器來(lái)平滑圖像以除去噪聲(即用高斯平滑濾波器與圖像作卷積)。增強(qiáng)邊緣是將鄰域(或局部)強(qiáng)度值有顯著變化的點(diǎn)突出來(lái),一般通過(guò)計(jì)算梯度幅值來(lái)完成。Canny分割算法采用一階偏導(dǎo)的有限差分來(lái)計(jì)算梯度的幅值和方向。對(duì)一個(gè)邊緣來(lái)說(shuō),其一階導(dǎo)數(shù)在邊界處存在一個(gè)向上的階躍,或者其二階導(dǎo)數(shù)過(guò)零點(diǎn)。在處理過(guò)程中,Canny算法還將經(jīng)過(guò)一個(gè)非極大值抑制的過(guò)程。最后Canny算法將采用兩個(gè)閾值來(lái)連接邊緣。傳統(tǒng)Canny算法也有不足之處,Canny算法對(duì)整幅圖像采用同一高斯函數(shù)進(jìn)行濾波,無(wú)法顧及圖像局部特征信息,一方面很難消除局

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論