【正文】
安徽三聯(lián)學(xué)院畢業(yè)論文 本科畢業(yè)論文(設(shè)計、創(chuàng)作)題 目: 數(shù)字圖像邊緣檢測算法設(shè)計與實現(xiàn) 學(xué)生姓名: 學(xué)號: 0231002045 所在院系: 信息與通信技術(shù)系 專業(yè): 電子信息工程 入學(xué)時間: 2010 年 9 月 導(dǎo)師姓名: 職稱/學(xué)位: 講師/博士 導(dǎo)師所在單位: 完成時間: 2014 年 5 月安徽三聯(lián)學(xué)院教務(wù)處 制II安徽三聯(lián)學(xué)院畢業(yè)論文 數(shù)字圖像邊緣檢測算法設(shè)計與實現(xiàn)摘 要:圖像有很多最基本的特征,邊緣是其中之一,所以圖像處理的主要內(nèi)容中也有圖像的邊緣檢測,圖像的邊緣檢測也是圖像測量技術(shù)中的熱點。本篇論文是來研究圖像邊緣檢測,圖像處理技術(shù)已經(jīng)有很廣闊的應(yīng)用域,圖像的邊緣檢測最主要的意思是將圖像的邊緣提取出來。本文首先簡要的介紹了什么是邊緣檢測,和邊緣檢測的一些基本知識和原理,然后回顧了一些經(jīng)典的邊緣檢測算法。最后在已有的經(jīng)典算法基礎(chǔ)上進(jìn)行編程仿真來提取圖像的邊緣。關(guān)鍵詞:圖像處理;邊緣檢測;Hough變換;輪廓跟蹤Design and implementation the algorithm of digital image edge detectionAbstract:Images have a lot of the most basic features, edge is one of them. So the image edge detection is one of the main content for image processing, the image edge detection has been the hot point in image measurement technology. This paper is to study the image edge detection. Image processing technology has very broad application field. The main mean of image edge detection is to detect image edge. In this article, first, briefly introduced what is edge detection, and some basic knowledge and principle of edge detection. Then reviews some of the classical edge detection algorithm. Finally, extracting image edge programming simulation on the basis of the existing classic algorithms.Key words: Image Processing, Edge Detection, Hough manipulation, contour tracing1安徽三聯(lián)學(xué)院畢業(yè)論文設(shè)計 目 錄第一章 緒論 1 課程設(shè)計選題的背景及意義 1 圖像邊緣檢測的發(fā)展現(xiàn)狀 1第二章 邊緣檢測有關(guān)知識點 2 邊緣檢測算法的分類 2 邊緣檢測基本步驟 2 邊緣檢測算法評價標(biāo)準(zhǔn) 3第三章 一些經(jīng)典的邊緣檢測算子的原理介紹 5 Roberts邊緣檢測算子 5 Prewitt算子 5 Kirsch算子 6第四章 圖像邊緣檢測相關(guān)程算法和程序 7 Hough變換 7 9 14第五章 程序調(diào)式仿真 18 MATLAB簡介 18結(jié)論 19致謝 20參考文獻(xiàn) 21第一章 緒論我們?nèi)粘I詈凸ぷ髦蝎@取和交換信息的來源主要是圖像,所以圖像處理技術(shù)涉及到我們生活的方方面面。數(shù)字圖像處理技術(shù)的發(fā)展涉及計算機(jī)科學(xué)、數(shù)學(xué)、信息技術(shù)等科學(xué),也因此與邊緣相關(guān)的學(xué)科對圖像處理技術(shù)的發(fā)展有著很大的影響。隨著多年的發(fā)展,圖像處理技術(shù)被運用到很多高科技領(lǐng)域 課程設(shè)計選題的背景及意義 所謂邊緣,是指圖像中灰度發(fā)生急劇變化的區(qū)域,或者說是指周圍像素灰度有階躍變化或屋頂變化的那些像素的集合[1]在對圖像處理研究中,圖像、圖形的處理,包括數(shù)字圖像的處理、儲存等是主要的工作。多媒體技術(shù)、計算機(jī)視覺和計算機(jī)模式識別已經(jīng)逐漸地應(yīng)用在日常生活中[2]。一個區(qū)域的終結(jié)和另一個區(qū)域的開始就是邊緣,邊緣普遍存在于目標(biāo)與背景、目標(biāo)與目標(biāo)、區(qū)域與區(qū)域、基元與基元之間,圖像分割所依賴的重要特征就是邊緣,紋理特征的重要信息源和形狀特征的基礎(chǔ)是邊緣。有了圖像邊緣,物體的幾何尺寸可以確定基于有了邊緣,并進(jìn)一步對其測量,物體在空間中的幾何位置可以確定,物體的形狀特征被確定并對物體進(jìn)行識別。圖像的邊緣信息在圖像分析和計算機(jī)視覺中圖像的邊緣信息很重要,圖像識別中提取圖像特征的一個重要屬性是邊緣。即使它在數(shù)字圖像處理中有很重要的作用。 圖像邊緣檢測的發(fā)展現(xiàn)狀 圖像的邊緣檢測有著很長的研究歷史,學(xué)術(shù)思想非常活躍,不斷涌現(xiàn)新理論、新方法,一直是國內(nèi)外圖像處理領(lǐng)域研究的熱點一直是圖像的邊緣檢測,現(xiàn)今許多方法和理論己經(jīng)被提出。目前為止提出的關(guān)于邊緣檢測的方法和理論依然存在不足的地方,在某些具體情況下依然無法很好的檢測出目標(biāo)物體的邊緣在某些具體情況下。所以,根據(jù)具體的應(yīng)用要求設(shè)計新的邊緣檢測方法根據(jù)具體的應(yīng)用,或者對現(xiàn)有的方法進(jìn)行改進(jìn)以達(dá)到滿意的結(jié)果,研究的主流方向依然是這些依然是。第二章 邊緣檢測有關(guān)知識點 邊緣檢測算法的分類隨著圖像處理技術(shù)的發(fā)展和多種學(xué)科在數(shù)字圖像處理領(lǐng)域的融合交叉,多種多樣的邊緣檢測算法不斷出現(xiàn)。目前,邊緣檢測方法含有算子法、曲面擬合法、模板匹配法等[3],分方法為主的是經(jīng)典邊緣檢測算法,又可分為一階微分算法和二階微分算法。新邊緣檢測算法有很多種,包含多種學(xué)科,有良好的發(fā)展形勢。如分類圖21所示:Roberts算法 Sobel算法 Prewitt算法一階算法 Canny算法 ﹒﹒﹒﹒﹒﹒經(jīng)典算法邊緣檢測算法 Laplace算法 LOG算法二階算法 數(shù)學(xué)形態(tài)法 小波變換法 新算法 神經(jīng)網(wǎng)絡(luò)法模糊檢測法﹒﹒﹒﹒﹒﹒圖21 邊緣檢測算法分類 邊緣檢測基本步驟通常邊緣檢測主要包括以下四個步驟[4] (如圖22所示):(1) 圖像濾波同屬圖像中強度變化劇烈的部位是邊緣和噪聲,所以邊緣檢測算子對邊緣和噪聲都很敏感,為了改善與噪聲有關(guān)的邊緣檢測算子的性能所以必須使用濾波器。而邊緣檢測算法主要是基于圖像灰度的一階和二階導(dǎo)數(shù),導(dǎo)數(shù)的計算對噪聲很敏感,而邊緣檢測算法主要是基于圖像灰度的一階和二階導(dǎo)數(shù),為了改善與噪聲有關(guān)的邊緣檢測器的性能須用濾波器。(2) 圖形增強確定圖像各點鄰域強度的變化值是增強邊緣的基礎(chǔ)??梢詫⑧徲驈姸戎涤酗@著變化的點突出顯示的算法是增強算法。(3) 圖像檢測圖像中有許多梯度幅值比較大的點,然而這些點并不都是邊緣在一些特定的應(yīng)用領(lǐng)域中,哪些是邊緣點應(yīng)用某些方法來確定。梯度幅值閾值判據(jù)是最簡單的邊緣檢測判據(jù)。(4) 圖像定位確定邊緣點的具體位置就是邊緣定位,邊緣細(xì)化、連接也應(yīng)該包括。如果邊緣位置在某一應(yīng)用場合要求確定,則邊緣的位置可利用子像素分辨率來估計,也可以估計出邊緣的方位。圖22 邊緣檢測的流程 邊緣檢測算法評價標(biāo)準(zhǔn)邊緣檢測算法的評價標(biāo)準(zhǔn)的研究,需追溯到其發(fā)展的思想源頭和理論基礎(chǔ)。一般情況下,圖像中的邊緣點可認(rèn)為是信號中的奇異點和突變點,它相鄰像素灰度分布的梯度反映了其附近灰度的變化情況。基于以上我們提出了多種邊緣檢測算子:如Robert算子、Prewitt算子等。這些方法多灰度分析的基礎(chǔ)是待處理像素為中心的鄰域,對圖像邊緣的提取得以實現(xiàn)并已經(jīng)取得了較好的處理效果。邊緣像素寬、噪聲干擾較嚴(yán)重等缺點也同時存在于這些方法中,即使采用一些輔助的方法去噪,邊緣模糊等難以克服的缺陷也會相應(yīng)帶來。本質(zhì)上講,計算局部的微分算子是各種邊緣檢測技術(shù)的基本思想。一般圖像的邊緣檢測識別過程中有如下的要求:(1)有效的邊緣能夠正確的檢測出;(2)要有高精度的邊緣定位;(3)檢測的響應(yīng)最好是單像素的檢測響應(yīng);(4)對于不同尺度的邊緣都能有較好的響應(yīng)且能盡量減少漏檢;(5)對噪聲盡量不敏感;邊緣檢測器的響應(yīng)可簡略的總結(jié)為以下三種誤差:(1)丟失的有效邊緣;(2)邊緣定位誤差(3)將噪聲誤判斷為邊緣。第三章 一些經(jīng)典的邊緣檢測算子的原理介紹 Roberts邊緣檢測算子利用局部差分算子尋找邊緣的算子就是Roberts算子,Roberts算子在2*2鄰域上計算對角導(dǎo)數(shù): ()又稱為Roberts交叉算子。近似簡化運算: ()用卷積模板,上式變?yōu)椋? ():01101001 (a)對角導(dǎo)數(shù) (b)對角導(dǎo)數(shù) Roberts邊緣檢測算子將在內(nèi)插點處計算差分值。該點連續(xù)梯度的近似值就是Roberts算子,不是預(yù)期點處的近似值。經(jīng)過用面兩個卷積算子對圖像運算后,代入,可求得圖像的梯度幅度值,再選取適當(dāng)?shù)拈T限TH,作如下判斷:,為階躍狀邊緣點{}為一個二值圖像,就得到了圖像的邊緣.。 Prewitt算子Prewitt由22擴(kuò)大到33來計算差分算子,此算子不僅能檢測邊緣點,這些算子樣板是由理想的邊緣圖像構(gòu)成的,檢測圖像則是次用邊緣樣板,最大值則是由與被檢測區(qū)域最為相似的樣板給出。算子的輸出值就是用這個的最大值,則邊緣像素就可被檢測出來。Prewitt邊緣檢測算子模板的定義如下:上面8個算子樣板分別對應(yīng)8個等方向的邊緣方向。然后適當(dāng)選取門限TH,作此判斷:若P(i,j)TH,那么(i,j)為階躍狀邊緣點。就得到{P(i,j)}為邊緣圖像。(4)拉普拉斯算子(Laplace)拉普拉斯定義為:()拉普拉斯也是采用模板計算,有一種經(jīng)常用的5 5的模板[5] Kirsch算子Kirsch是方向算子。它是用八個卷積核的邊緣檢測算子,一共有八個33卷積核[6]。各方向上的邊緣均可檢測,選擇其中的最大值輸出, 計算量增加了,并且減少因為平均而造成的細(xì)節(jié)丟失。局部邊緣的突出基于邊緣增強算子,通過設(shè)置門限的方法提取邊緣點集,像素中的“邊緣強度”就被定義了這是邊緣檢測的基本原理。我們要尋找一些各項同性的檢測算子這是因為邊緣、輪廓在一幅圖像中經(jīng)常具有任意的方向,們對任意方向的邊緣、輪廓都有一樣的檢測能力[7]。第四章 圖像邊緣檢測相關(guān)程算法和程序 Hough變換Hough變換用來在圖像中查找直線。它的原理很簡單:假設(shè)有一條與原點距離為s,方向角為θ的一條直線,下圖所示。直線上的每一點都滿足方程 ()利用這個事實,我們可以找出某條直線來。舉一個例子,用一段程序找出圖像中最長的直線(紅色直線),我們可將直線顏色加粗。原圖變換的結(jié)果找到的最長直線確實是它。下面給出BOOL Hough程序:BOOL Hough(HWND hWnd){//定義一個自己的直線結(jié)構(gòu) typedef struct{ int topx。 //最高點的x坐標(biāo) int topy。 //最高點的y坐標(biāo) int botx。 //最低點的x坐標(biāo) int boty。 //最低點的y坐標(biāo) }MYLINE。 DWORD OffBits,BufSize。 LPBITMAPINFOHEADER lpImgData。 LPSTR lpPtr。 HDC hDc。LONG x,y。 long i,maxd。 int k。 int Dist,Alpha。HGLOBAL hDistAlpha,hMyLine。 Int *lpDistAlpha。 MYLINE *lpMyLine,*TempLine,MaxdLine。 static LOGPEN rlp={PS_SOLID,1,1,RGB(255,0,0)}。 HPEN rhp。if( NumColors!=256){ MessageBox(hWnd,Must be a mono bitmap with grayscale palette!,Error Message,MB_OK|MB_ICONEXCLAMATION)。return FALSE。}//計算最大距離160