【正文】
algorithm and whose characteristic. To studying image analysis field of other knowledge to lay the foundation.Keywords: Edge Treatment , MATLAB, GUI, Log operator, Canny operator 目 錄第一章 緒論 1 數字圖像簡介 1 數字圖像的處理 2 圖像邊緣處理的意義 3 本章小結 3第二章 開發(fā)平臺的選擇 4 開發(fā)平臺的選擇 4 Matlab簡介 4 本章小結 5第三章 常用的圖像邊緣檢測算法 6 引言 6 邊緣檢測與提取過程 7 邊緣檢測與提取常用算法 8 Roberts邊緣算子 8 Sobel邊緣算子 9 Prewitt邊緣算子 9 Log邊緣算子 10 Canny邊緣算子 11 本章小結 13第四章 常用算法的實現與比較 14 常用算法的Matlab實現 14 算子之間的比較 18 算子的定位性 18 算子的穩(wěn)定性 19 本章小結 22第五章 圖像邊緣提取的GUI設計 23 主要函數的介紹 23 GUI的實現 24 本章小結 30第六章 系統(tǒng)測試 31 打開圖像模塊測試 31 保存圖像模塊 31 執(zhí)行模塊測試 31 本章小結 32結論 33參考文獻 34致謝 35第一章 緒論在實際圖像邊緣檢測問題中,圖像的邊緣作為圖像的一種基本特征,經常被應用到較高層次的圖像應用中,它在圖像識別、圖像分割、圖像增強以及圖像壓縮等領域中有較為廣泛的應用。本文寫作的主要目的是對常用的圖像邊緣提取算法進行研究和對比,了解常用邊緣提取算法的原理及其特點,為以后深入學習圖像分析領域的其它知識打下基礎。本文主要闡述基于Matlab的圖像邊緣檢測技術。如果發(fā)表相關成果,一定征得指導教師同意,且第一署名單位為XXX。對本文的研究成果做出重要貢獻的個人和集體,均已在文中以明確方式標明。 畢業(yè)論文(設計)題 目: 圖像處理中的邊緣提取算 法及其實現 院(系): 專業(yè)年級: 姓 名: 張大威 學 號: 指導教師: 2012年4月1日原 創(chuàng) 性 聲 明本人鄭重聲明:本人所呈交的畢業(yè)論文,是在指導老師的指導下獨立進行研究所取得的成果。本聲明的法律責任由本人承擔。本人離校后使用畢業(yè)論文或與該論文直接相關的學術論文或成果時,第一署名單位仍然為XXX。以Matlab為開發(fā)平臺和編程語言,設計出圖像邊緣檢測軟件,并且設計了圖形用戶界面GUIDE,在圖形用戶界面中添加了與各種算子相對應的處理程序,以及圖形文件的獲取、保存等功能,完成了圖像邊緣檢測軟件。關鍵詞:圖像邊緣處理,MATLAB,GUI,Log算子,Canny算子Edge extraction algorithm in image processing and its implementationAbstractDigital image edge detection plays an import part in image analysis, such as image segmentation, interested region recognition and region shape it’s an import method in image feature extraction of image edge includes the valuable infotmation of the image which can be use in image understanding and through edge detection,we can reduce the calculation of image analysis and processing in the following step.This article discusses the Matlabbased image edge detection .Discussed in Matlab as the development platform and programming language, designed edge detection software , the design of the graphical user interface GUIDE , bining the portrait maps ,text maps, fractal images to illustrate the positioning of these operators。圖像的邊緣是圖像最基本的特征之一。由于邊緣檢測在許多方面都有著非常重要的使用價值,所以人們一直在致力于研究和解決如何構造出具有良好性質及效果的邊緣檢測算子的問題。圖像也可以理解為介于文字和繪圖之間的一種形式。 數字圖像的處理一幅圖像可以定義為一個二維函數f (x , y),這里的x和y是空間坐標,而且在任何一對空間坐標(x , y)上的幅值f被稱為該點圖像的強度或灰度。然而,人類感知只是限于電磁波譜的視覺波段,而成像機器則可覆蓋幾乎全部電磁波譜,他們可以對那些非人類習慣的那些圖像源進行加工,這些圖像源包括超聲波、電子顯微鏡及計算機所產生的圖像。當圖像已被采集且已對獲取過程中產生的失真進行了校正,那么所有可用圖像處理技術在本質上是通用的。邊緣是圖像最基本的特征,所謂邊緣,就指周圍灰度強度有反差變化的那些像素的集合,是圖像分割所依賴的重要基礎,也是紋理分析和圖像識別的重要基礎。 圖像邊緣處理的意義圖像處理是自動化學科的一個分支,在工程技術領域有著廣泛的應用,而邊緣檢測技術又是圖形處理中的重要部分。第二章 開發(fā)平臺的選擇 開發(fā)平臺的選擇現在可用于圖像處理編程的軟件有很多,基本上主流的編程工具軟件都可以,但對于我們要完成畢業(yè)設計的大學生而言,要在很短的時間內將圖像處理程序給編寫出來的話,用那些專業(yè)的編程軟件是比較困難的。這是因為Matlab有專門的圖像處理工具箱,有很多實現某種圖像處理功能的函數,而專業(yè)級的編程工具并沒有專門為圖像處理而編寫的函數,很多圖像處理函數需要開發(fā)者自己編寫。它在數學類科技應用軟件中,在數值計算方面首屈一指。Matlab圖形處理研究的主要問題有:本文主要使用到圖像分析中的圖像邊緣檢測功能。圖像邊緣信息在圖像分布和人的視覺中都是十分重要的,是圖像識別中提取圖像特征的一個重要屬性。本文寫作的目的是探索和研究幾種經典的圖像邊緣提取算法。所謂邊緣(或邊沿)是指其周圍像素灰度有階躍變化或屋頂變化的那些像素的集合。這些方法多是以待處理像素為中心的鄰域作為進行灰度分析的基礎,實現對圖像邊緣的提取并已經取得了較好的處理效果。從本質上說,圖像邊緣是圖像局部特性不連續(xù)性的反應,它標志著一個區(qū)域的終結和另一個區(qū)域的開始。在圖像中邊緣區(qū)域的灰度在空間上的變化形式一般可分為三個類型:階躍型、房頂型和凸緣型,如圖31所示: 階躍型 房頂型 突圓型 邊緣灰度變化圖31 三個類型 邊緣檢測與提取過程從人的直觀感受來說,邊緣對應于物體的幾何邊界。此外,還需要把邊緣細化成只有一個像素的寬度。3)檢測:在有些圖像中梯度幅值較大的并不是邊緣點。這些方法經過實踐的檢驗,成為了經典的內容。經典的邊界提取技術大都基于微分運算,首先通過平滑來濾除圖像中的噪聲,然后進行一階微分或二階微分運算,求得梯度最大值或二階導數的過零點,最后選取適當的閾值來提取邊界。121000121101202101圖32 Sobel邊緣算子 Sobel算子認為鄰域的像素對當前像素產生的影響不是等價的,所以距離不同的像素具有不同的權值,對算子結果產生的影響也不同。 Log邊緣算子由于利用圖像強度二階導數的零交叉點來求邊緣點的算法對噪聲十分敏感,所以要在邊緣檢測前濾除噪聲,為此,馬爾(Marr)和希爾得勒斯(Hildreth)根據人類視覺特性提出了一種邊緣檢測的方法,該方法將高斯濾波和拉普拉斯檢測算子結合在一起進行邊緣檢測的方法,故稱為Log(Laplacian of Gassian )算法,也稱之為高斯拉普拉斯算子,該算法的主要思路和步驟如下:(1)濾波:首先對圖像f(x,y)進行平滑濾波,其濾波函數根據人類視覺特性選為高斯函數,即: 其中,G(x,y)是一個圓對稱函數,其平滑的作用是可通過來控制的。拉普拉斯函數用二維二階導數的近似,是因為它是一種無方向算子。這就是馬爾和希爾得勒斯提出的邊緣檢測算子(簡稱MH算子),又稱為墨西哥草帽算子。Canny方法也使用拉普拉斯算子,該方法與其他邊緣檢測方法不同之處在于,它使用2種不同的閾值分別檢測強邊緣和弱邊緣,并且僅當弱邊緣與強邊緣相連時才將弱邊緣包含在輸出圖像中,因此這種方法容易檢查出真正的弱邊緣。step2: = , =*= 反映了圖像(x,y)點處的邊緣強度,是圖像(x,y)點處的法向矢量。在每一點上,鄰域的中心像素M與沿著梯度線的兩個像素相比。理論上是可行的,問題是如何選取閾值。由于G2(x,y)使用高閾值得到,因而含有很少的假邊緣,但有間斷(不閉合)。 本章小結本章介紹了邊緣檢測中五種比較有代表性的算法,從數學的角度講述了各算子的實現步驟,下一章將介紹各種算法在Matlab中的實現。 常用算法的Matlab實現Matlab圖像處理工具箱提供的edge函數可以實現邊緣檢測的功能。 d) Canny;e)Sobel主要代碼為:f = imread (39。 %將彩色圖像轉換為灰度圖像f = im2double(f)。PF = edge(f, 39。Prewitt Filter39。)。LF = edge(f, 39。Laplacian of Gaussian (LoG) Filter39。)。DF = edge(f, 39。sobel Filter39。在Matlab中輸入如下的程序:f = imread(39。 %將彩色圖像轉換為灰度圖像f = im2double(f)。