matlab圖像邊緣檢測系統(tǒng)設(shè)計(jì)_第1頁
matlab圖像邊緣檢測系統(tǒng)設(shè)計(jì)_第2頁
matlab圖像邊緣檢測系統(tǒng)設(shè)計(jì)_第3頁
matlab圖像邊緣檢測系統(tǒng)設(shè)計(jì)_第4頁
matlab圖像邊緣檢測系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

摘要摘要III目錄TOC\o"1-3"\h\u22323第一章引言 15701.1課題背景 132151.2課題研究目的及意義 1181181.2.1Matlab圖像邊緣檢測研究的目的 1230831.2.2Matlab圖像邊緣檢測研究意義 2124961.3課題研究現(xiàn)狀及發(fā)展趨勢 2137131.4課題整體結(jié)構(gòu) 370841.5課題難點(diǎn)分析 38435第二章Matlab開發(fā)環(huán)境 4277212.1系統(tǒng)開發(fā)環(huán)境和運(yùn)行環(huán)境 4130522.2Matlab在數(shù)字圖像處理中的應(yīng)用 4302572.2.1Matlab的特點(diǎn) 4292682.2.2Matlab的主要功能 5188362.3利用Matlab進(jìn)行圖像處理 6189542.3.1常用圖像操作 6149642.3.2圖像變換功能 6180482.3.3圖像增強(qiáng)功能 8129142.3.4邊緣檢測和圖像分割功能 816792.3.5MatlabGui 910701MatlabGui簡介 927392MatlabGui的一般制作步驟 1018834MatlabGui設(shè)計(jì)工具簡介 1178182.3.6編制回調(diào)程序 1220612.7本章小結(jié) 128943第三章邊緣檢測技術(shù) 13230333.1微分邊緣檢測技術(shù) 13133063.1.1Roberts算子 1497353.1.2Sobel算子 1559903.1.3Prewitt算子 16219283.1.4拉普拉斯-高斯算子(Log算子) 17268673.1.5Canny算子 18300313.1.6邊緣檢測方法結(jié)果比較 19113193.2基于小波與分形理論邊緣檢測技術(shù) 21101053.3基于數(shù)學(xué)形態(tài)學(xué)的邊緣檢測技術(shù) 21312163.4基于模糊學(xué)的邊緣檢測技術(shù) 2223693.5基于神經(jīng)網(wǎng)絡(luò)的邊緣檢測技術(shù) 2232943.6基于遺傳算法的邊緣檢測技術(shù) 22236273.7本章小結(jié) 2321099第四章基于Matlab的圖像邊緣檢測系統(tǒng) 24105654.1程序主界面 2414604.2仿真結(jié)果 26264624.3本章小結(jié) 2820395第五章結(jié)論 29226105.1畢業(yè)設(shè)計(jì)總結(jié) 29321025.2課題前景與展望 291536致謝 309694參考文獻(xiàn) 3130129附錄 3288701選擇圖片 3216422Canny算子檢測 3270153Log算子檢測 32233004prewitt算子檢測 3287365圖像小波檢測 33301816退出 33石河子大學(xué)學(xué)士學(xué)位論文第一章引言PAGEPAGE2PAGEPAGE3第一章引言1.1課題背景圖像處理技術(shù)隨著計(jì)算機(jī)的發(fā)展得到了迅速的發(fā)展。其應(yīng)用領(lǐng)域也愈來愈廣,有些技術(shù)已相當(dāng)成熟并產(chǎn)生了驚人的效益。圖像處理科學(xué)對我們的生活和生產(chǎn)有著重要的意義。在工程領(lǐng)域、工業(yè)生產(chǎn)、軍事、醫(yī)學(xué)以及科學(xué)研究中的應(yīng)用已十分普遍。通過分析資源衛(wèi)星得到的照片可以獲得地下礦藏資源分布,A射線、CT已廣泛用于臨床診斷,為診斷和治療疾病帶來了極大的方便;在安全保障及監(jiān)控方面圖像處理技術(shù)更是不可缺少的基本技術(shù)。當(dāng)前圖像處理面臨的主要任務(wù)是研究新的處理方法,構(gòu)造新的處理系統(tǒng),開拓更廣泛的應(yīng)用領(lǐng)域[1]。圖像邊緣檢測是圖像處理與分析中最基礎(chǔ)的內(nèi)容之一,同時(shí)由于成像過程中的投影、混合、畸變和噪聲等導(dǎo)致圖像特征的模糊和變形,且圖像邊緣和噪聲均為頻域中的高頻分量,這給邊緣檢測帶來了困難。邊緣檢測的難題是檢測精度與抗噪性能之間的矛盾。對于圖像邊緣檢測,尋求算法較簡單、能較好解決邊緣檢測精度與抗噪性能協(xié)調(diào)問題的算法,一直是圖像處理與分析研究的主要問題之一。本論文首先介紹了所有的邊緣檢測技術(shù),其中詳細(xì)的介紹了幾種經(jīng)典的邊緣檢測算子并且對其它的邊緣檢測技術(shù)進(jìn)行了概述。然后在Matlab環(huán)境下對這幾種經(jīng)典算子進(jìn)行仿真。最后在MatlabGui環(huán)境下進(jìn)行了一個(gè)綜合性的仿真實(shí)驗(yàn)。

1.2課題研究目的及意義1.2.1Matlab圖像邊緣檢測研究的目的邊緣檢測是圖像分割的核心內(nèi)容,而圖像分割是由圖像處理到圖像分析的關(guān)鍵步驟,在圖像工程中占據(jù)重要的位置,對圖象的特征測量有重要的影響。圖像分割及基于分割的目標(biāo)表達(dá)、特征提取和參數(shù)測量等將原始圖像轉(zhuǎn)化為更抽象更緊湊的形式,使得更高層的圖像分析和理解成為可能。從而邊緣檢測在圖像工程中占有重要的地位和作用。因此對邊緣檢測的研究一直是圖像技術(shù)研究中熱點(diǎn),人們對其的關(guān)注和研究也是日益深入。首先,邊緣在邊界檢測、圖像分割、模式識(shí)別、機(jī)器視覺等中有很重要的作用。邊緣是邊界檢測的重要基礎(chǔ),也是外形檢測的基礎(chǔ)。同時(shí),邊緣也廣泛存在于物體與背景之間、物體與物體之間,基元與基元之間,是圖像分割所依賴的重要特征。其次,邊緣檢測對于物體的識(shí)別也是很重要的。第一,人眼通過追蹤未知物體的輪廓而掃視一個(gè)未知的物體。第二,如果我們能成功地得到圖像的邊緣,那么圖像分析就會(huì)大大簡化,圖像識(shí)別就會(huì)容易得多。第三,很多圖像并沒有具體的物體,對這些圖像的理解取決于它們的紋理性質(zhì),而提取這些紋理性質(zhì)與邊緣檢測有極其密切的關(guān)系。1.2.2Matlab圖像邊緣檢測研究意義理想的邊緣檢測是能夠正確解決邊緣的有無、真假、和定向定位。長期以來,人們一直關(guān)心這一問題的研究,除了常用的局部算子及以后在此基礎(chǔ)上發(fā)展起來的種種改進(jìn)方法外,又提出了許多新的技術(shù),其中,比較經(jīng)典的邊緣檢測算子有Robertscross算子、Sobel算子、Laplacian算子等。近年來又有學(xué)者提出了廣義模糊算子,形態(tài)學(xué)邊緣算子等。這些邊緣檢測的方法各有其特點(diǎn),但同時(shí)也都存在著各自的局限性和不足之處[2]。近年來,隨著數(shù)學(xué)和人工智能技術(shù)的發(fā)展,各種類型的邊緣檢測算法不斷涌現(xiàn),如神經(jīng)網(wǎng)絡(luò)、遺傳算法、數(shù)學(xué)形態(tài)學(xué)等理論運(yùn)用到圖像的邊緣檢測中。但由于邊緣檢測存在著檢測精度、邊緣定位精度和抗噪聲等方面的矛盾及對于不同的算法邊緣檢測結(jié)果的精度卻沒有統(tǒng)一的衡量標(biāo)準(zhǔn),所以至今都還不能取得令人滿意的效果。另外隨著網(wǎng)絡(luò)和多媒體技術(shù)的發(fā)展,圖像庫逐漸變得非常龐大;而又由于實(shí)時(shí)圖像的目標(biāo)和背景間的變化都不盡相同,如何實(shí)現(xiàn)實(shí)時(shí)圖像邊緣的精確定位和提取成為人們必須面對的問題。1.3課題研究現(xiàn)狀及發(fā)展趨勢圖像處理是人類視覺延續(xù)的重要手段,可以使人們看到任意波上所測得的圖像。例如,借助伽馬相機(jī)、X光機(jī),人們可以看到紅外和超聲圖像;借助CT可看到物體內(nèi)部的斷層圖像:借助相應(yīng)工具可看到立體圖像和剖視圖像。幾十午前,美國在太空探索中拍回了大量月球照片,但是由于種種環(huán)境因素的影響,這些照片是非常不清晰的,為此,人們對這些照片應(yīng)用了一些圖像處理手段,使照片中的重要信息得以清晰再現(xiàn)。正是這一方法產(chǎn)生的效果引起了巨大的轟動(dòng),從而促進(jìn)了圖像處理技術(shù)的蓬勃發(fā)展??傮w來說,圖像處理技術(shù)的發(fā)展大致經(jīng)歷了初創(chuàng)期、發(fā)展期、普及期和實(shí)用化期四個(gè)階段。初創(chuàng)期開始于20世紀(jì)60年代,當(dāng)時(shí)的圖像采用像素型光柵進(jìn)行掃描顯示,大多采用中、大型機(jī)對其進(jìn)行處理。在這一時(shí)期,由于圖像存儲(chǔ)成本高,處理設(shè)備造價(jià)高,因而其應(yīng)用面很窄。20世紀(jì)70年代進(jìn)入了發(fā)展期,開始大量采用中、小型機(jī)進(jìn)行處理,圖像處理也逐漸改用光柵掃描顯示方式,特別是出現(xiàn)了CT和衛(wèi)星遙感圖像,對圖像處理技術(shù)的發(fā)展起到了很好的促進(jìn)作用。到了20世紀(jì)80年代,圖像處理技術(shù)進(jìn)入普及期,此時(shí)的微機(jī)已經(jīng)能夠擔(dān)當(dāng)起圖形圖像處理的任務(wù)。VLSl的出現(xiàn)更使得處理速度大人提高,其造價(jià)也進(jìn)一步降低,極大地促進(jìn)了圖形圖像系統(tǒng)的普及和應(yīng)用。20世紀(jì)90年代是圖像技術(shù)的實(shí)用化時(shí)期,圖像處理的信息量巨人,對處理速度的要求極高。21世紀(jì)的圖像技術(shù)要向高質(zhì)量化方面發(fā)展,主要體現(xiàn)在以下幾點(diǎn):1.高分辨率、高速度:圖像處理技術(shù)發(fā)展的最終目標(biāo)是要實(shí)現(xiàn)圖像的實(shí)時(shí)處理,移動(dòng)目標(biāo)的生成、識(shí)別和跟蹤上有著重要意義;2.立體化:立體化所包括的信息最為完整和豐富,未來采用數(shù)字全息技術(shù)將有利于達(dá)到這個(gè)目的;3.智能化:其目的是實(shí)現(xiàn)圖像的智能生成、處理、識(shí)別和理解。1.4課題整體結(jié)構(gòu)我的思路是利用Matlab軟件的Gui功能設(shè)計(jì)一個(gè)可以插入圖片,實(shí)現(xiàn)圖像邊緣檢測的系統(tǒng)。具體步驟為導(dǎo)入圖像進(jìn)入系統(tǒng),用不同的算子對圖像進(jìn)行檢測,之后用Callback函數(shù)調(diào)用語句將其轉(zhuǎn)換為一個(gè)整體。1.5課題難點(diǎn)分析雖然學(xué)習(xí)過Matlab軟件,但是對于其具體的功能了解不多。尤其是制作Gui的功能界面,從來沒有接觸過。對于開發(fā)環(huán)境了解不多,需要很多的學(xué)習(xí)。利用Matlab進(jìn)行圖像邊緣檢測有很多種算子,但是每一種算子的優(yōu)缺點(diǎn)都不清楚,造成了選擇算法的困難。第二章Matlab開發(fā)環(huán)境PAGEPAGE32PAGEPAGE23第二章Matlab開發(fā)環(huán)境2.1系統(tǒng)開發(fā)環(huán)境和運(yùn)行環(huán)境硬件環(huán)境:計(jì)算機(jī)一臺(tái)。軟件環(huán)境:(1)Windows7操作系統(tǒng)。(2)Matlab軟件。2.2Matlab在數(shù)字圖像處理中的應(yīng)用數(shù)字圖像數(shù)據(jù)量龐大,必須借助適當(dāng)?shù)拈_發(fā)工具。Microsoft公司的VC++是一種具有高度綜合性能的軟件開發(fā)工具,用它開發(fā)出來的程序有著運(yùn)行速度快、可移植能力強(qiáng)等優(yōu)點(diǎn)。所以很多科研工作者首選VC++作為數(shù)字圖像處理的開發(fā)工具。但是VC++復(fù)雜難學(xué),難以在短期內(nèi)熟練掌握,這成為眾多《數(shù)字圖像處理》學(xué)習(xí)者的一個(gè)瓶頸。Matlab是由MathWorks公司開發(fā)的一種可視化科學(xué)計(jì)算軟件,其內(nèi)容涉及矩陣?yán)碚摗⒎逗治?、?shù)學(xué)物理方程、數(shù)值分析、微積分、有限元、小波分析等應(yīng)用數(shù)學(xué)各個(gè)分支,因此,Matlab的應(yīng)用幾乎涵蓋了所有工程領(lǐng)域。Matlab已經(jīng)是數(shù)字圖像處理、計(jì)算機(jī)圖形學(xué)、電子線路、電機(jī)學(xué)、自動(dòng)控制、通信技術(shù)、物理、力學(xué)等領(lǐng)域的科研人員所必須掌握的一種程序設(shè)計(jì)語言[3]。Matlab不僅具有面向?qū)ο蟮挠?jì)算機(jī)語言特征,而且初具面向任務(wù)的計(jì)算機(jī)語言的思想。本文從實(shí)際應(yīng)用的角度介紹如何利用Matlab進(jìn)行圖像處理和分析。2.2.1Matlab的特點(diǎn)一種語言之所以如此迅速地普及,顯示出如此旺盛的生命力,是由它有著不同于其他語言的特點(diǎn)。正如同F(xiàn)ortran和C等高級(jí)語言使人們擺脫了需要直接對計(jì)算機(jī)硬件資源進(jìn)行操作一樣,被稱為第四代計(jì)算機(jī)語言的Matlab,利用其豐富的函數(shù)資源,使編程人員從繁瑣的程序代碼中解放出來。1.功能強(qiáng)大Matlab具有功能強(qiáng)勁的工具箱,其包含兩個(gè)部分:核心部分和各種可選的工具箱。核心部分中,有數(shù)百個(gè)核心內(nèi)部函數(shù)。其工具箱又可分為兩類:功能性工具箱和學(xué)科性工具箱。功能性工具箱主要用來擴(kuò)充其符號(hào)計(jì)算功能、圖示建模仿真功能、文字處理功能以及與硬件實(shí)時(shí)交互功能,功能性工具箱能用于多種學(xué)科,而學(xué)科性工具箱是專業(yè)性比較強(qiáng)的,例如controltoolbox,imageprocessingtoolbox,signalprocessingtoolbox等。這些工具箱都是由該領(lǐng)域的學(xué)術(shù)水平很高的專家編寫的,所以用戶無需編寫自己學(xué)科范圍內(nèi)的基礎(chǔ)程序,就能夠直接進(jìn)行高、精、尖的研究。2.界面友好,編程效率高M(jìn)atlab突出的特點(diǎn)就是簡潔。它用更直接的、符合人類思維習(xí)慣的代碼代替了C和Fortran語言的冗長代碼,給用戶帶來的是最直接、最簡潔的程序開發(fā)環(huán)境。Matlab語言簡潔緊湊,使用方便靈活,庫函數(shù)及其豐富,程序書寫形式自由,利用其豐富的庫函數(shù)避開繁雜的子程序編程任務(wù),壓縮了一切不必要的編程工作。由于庫函數(shù)都是本領(lǐng)域的專家編寫的,因此用戶不必?fù)?dān)心函數(shù)的可靠性??梢哉f,用Matlab進(jìn)行科學(xué)開發(fā)是站在專家的臂膀上完成的。3.開放性強(qiáng)Matlab有很好的可擴(kuò)從性,可以把它當(dāng)成一種更高級(jí)的語言去使用。各種工具箱中的函數(shù)可以互相調(diào)用,也可以由用戶更改。Matlab支持用戶對其函數(shù)進(jìn)行二次開發(fā),用戶的應(yīng)用程序可以作為新的函數(shù)添加到相應(yīng)的工具箱中[4]。2.2.2Matlab的主要功能Matlab之所以成為世界頂級(jí)的科學(xué)計(jì)算與數(shù)學(xué)應(yīng)用軟件,是因?yàn)樗S著版本的升級(jí)與不斷完善而具有越來越強(qiáng)大的功能。1.數(shù)值計(jì)算功能Matlab出色的數(shù)值計(jì)算功能是使之優(yōu)于其他數(shù)學(xué)應(yīng)用軟件的決定性因素之一。2.符號(hào)計(jì)算功能Matlab符號(hào)運(yùn)算的獨(dú)特之處:無需事先對變量賦值,而所得的結(jié)果以標(biāo)準(zhǔn)的符號(hào)形式表達(dá),符號(hào)計(jì)算的整個(gè)過程以字符進(jìn)行。3.數(shù)據(jù)分析功能Matlab可以將計(jì)算數(shù)據(jù)以二維、三維及至四維的圖形表現(xiàn)。這不僅使數(shù)據(jù)間的關(guān)系清晰、明了,而且對于揭示其內(nèi)在本質(zhì)有著非常重要的作用。4.動(dòng)態(tài)仿真功能Matlab提供了一個(gè)模擬動(dòng)態(tài)系統(tǒng)的交互程序SIMULINK,用戶通過簡單的鼠標(biāo)操作,就可建立起直觀的系統(tǒng)模型,并進(jìn)行仿真。5.圖形文字統(tǒng)一處理功能MatlabNotebook成功地將MicrosoftWork與Matlab集成為一個(gè)整體,為文字處理、科學(xué)計(jì)算、工程設(shè)計(jì)營造了一個(gè)完美、統(tǒng)一的工作環(huán)境。它既擁有Word強(qiáng)大的文字處理功能,又能通過Word訪問Matlab的數(shù)據(jù)計(jì)算和可視化結(jié)果[5]。2.3利用Matlab進(jìn)行圖像處理數(shù)字圖像研究的領(lǐng)域非常廣泛,從學(xué)科上可以分為圖像的數(shù)字化、圖像變換、圖像增強(qiáng)、圖像恢復(fù)、圖像分割、圖像分析和理解、圖像的壓縮等。Matlab7.0提供了20類圖像處理函數(shù),涵蓋了圖像處理包括近期研究成果在內(nèi)的幾乎所有的技術(shù)方法,是學(xué)習(xí)和研究圖像處理的人員難得的寶貴資料和加工工具箱。2.3.1常用圖像操作1.Matlab圖像處理工具箱支持4中圖像類型,分別為真彩色圖像(RGB)、索引色圖像、灰色圖像和二值圖像。由于有的函數(shù)對圖像類型有限制,因此這4種類型可以用工具箱的類型轉(zhuǎn)換函數(shù)相互轉(zhuǎn)換。Matlab可操作的圖像文件包括BMP,HDF,JPEG,PCX,TIFF和XWD等格式。例如,要對一幅索引色圖像濾波,首先應(yīng)該將它轉(zhuǎn)換成真彩色圖像或者灰色圖像,這時(shí)Matlab將會(huì)對圖像的灰度進(jìn)行濾波,即通常意義上的濾波。如果不將索引色圖像進(jìn)行轉(zhuǎn)換,Matlab則對圖像調(diào)色板的序號(hào)進(jìn)行濾波,這時(shí)沒有意義的。2.圖像文件的讀寫與顯示操作Matlab為用戶提供了專門的函數(shù),以從圖像格式的文件中讀寫圖像數(shù)據(jù)。Imread()函數(shù)用于讀入各種圖像文件,imwrite()函數(shù)用于輸出圖像,imfinfo()函數(shù)用于讀取圖像文件的有關(guān)信息。把圖像顯示于屏幕有imread(),image()等函數(shù)。用subplot()函數(shù)能將一個(gè)圖像窗口分成幾個(gè)部分,但同一個(gè)圖像窗口內(nèi)只能有一個(gè)調(diào)色板。Subimage函數(shù)可在一個(gè)圖像窗口內(nèi)使用多個(gè)調(diào)色板,使得各種圖像能在同一個(gè)圖像窗口中顯示,用zoom()函數(shù)可實(shí)現(xiàn)對圖像的縮放。3.其他常用圖像操作圖像的插值縮放可用imresize()函數(shù)實(shí)現(xiàn)。在對數(shù)字圖像進(jìn)行旋轉(zhuǎn)時(shí),各像素的坐標(biāo)將會(huì)發(fā)生變化,使得旋轉(zhuǎn)之后不能正好落在整數(shù)坐標(biāo)處,需要進(jìn)行插值,imrotate()函數(shù)可實(shí)現(xiàn)插值旋轉(zhuǎn),用imcrop()函數(shù)可剪切圖像中的一個(gè)矩形子圖[6]。2.3.2圖像變換功能在圖像處理技術(shù)中,圖像的(正交)變換技術(shù)有著廣泛的應(yīng)用,是圖像處理的重要工具。通過變換圖像,改變圖像的表示域及表示數(shù)據(jù),可以給后續(xù)工作帶來極大的方便。常運(yùn)用于圖像壓縮、濾波、編碼和后續(xù)的特征抽取或信息分析過程。例如,傅立葉變換(FourierTransform)可使處理分析在頻域中進(jìn)行,使運(yùn)算簡單:而離散余弦變換可使能量集中在少數(shù)數(shù)據(jù)上,從而實(shí)現(xiàn)數(shù)據(jù)壓縮,便于圖像傳輸和存儲(chǔ)。1.傅立葉變換在圖像處理的廣泛應(yīng)用領(lǐng)域中,傅立葉變換起著非常重要的作用,具體表現(xiàn)在包括圖像分析、圖像增強(qiáng)及圖像壓縮等方面。利用計(jì)算機(jī)進(jìn)行傅立葉變換的通常形式為離散傅立葉變換,采用這種形式的傅立葉變換有以下兩個(gè)原因:一是離散傅立葉變換的輸入和輸出都是離散值,適用于計(jì)算機(jī)的運(yùn)算操作;二是采用離散傅立葉變化變換,可以應(yīng)用快速傅立葉變換來實(shí)現(xiàn),提高運(yùn)算速度。在Matlab工具箱中,提供了fft2()和ifft2()函數(shù)用于計(jì)算二維快速傅立葉變換及其逆變換,fftn()和ifftn()函數(shù)用于計(jì)算n維傅立葉變換和逆變換。2.離散余弦變換在圖像處理工具箱中,dct2()和idct2()函數(shù)實(shí)現(xiàn)二維離散余弦變換及逆變換。大多數(shù)情況下,DCT用于壓縮圖像,JPEG圖像格式就采用了DCT算法。在JPEG圖像壓縮算法中,圖像被分成8×8或者16×16的圖像塊,然后對每個(gè)圖像塊進(jìn)行DCT變換。DCT變換被量化、編碼及傳輸。在接收端,量化的DCT系數(shù)被解碼,并用于計(jì)算每個(gè)圖像塊的逆DCT變換,最后把各圖像塊拼接起來構(gòu)成一幅圖像。對一幅典型的圖像而言,許多DCT變換的系數(shù)近視為0,把它們?nèi)サ舨⒉粫?huì)明顯影響重構(gòu)圖像的質(zhì)量。3.radon變換圖像處理工具箱的radon()函數(shù)用來計(jì)算指定方向上圖像矩陣的投影,二元函數(shù)f(x,y)的投影是在某一方向上的線積分。例如,f(x,y)在垂直方向上的線積分是f(x,y)在x方向上的投影,在水平方向上的積分是在y方向上的投影。用iradon()函數(shù)可實(shí)現(xiàn)逆radon變換,并經(jīng)常用于投影中,這個(gè)變換能把radon變換反變換回來,因此可以從投影數(shù)據(jù)重建原始圖像。而在大多數(shù)應(yīng)用中,沒有所謂的用原始圖像來計(jì)算投影。例如,X射線吸收重建,投影是通過測量X射線在不同角度通過物理切線時(shí)的衰減得到的。原始圖像可以認(rèn)為是通過切面的截面。這里,圖像的密度代表切片的密度。投影通過特殊的硬件設(shè)備獲得,而切片內(nèi)部圖像通過iradon重建。這可以用來對活的生物體或者不透明物體實(shí)現(xiàn)無損成像。4.離散小波變換離散小波變換是對連續(xù)小波變換的尺度和位移按照2的冪次進(jìn)行離散化得到的,又稱二進(jìn)制小波變換。實(shí)際上,人們是在一定尺度上認(rèn)識(shí)信號(hào)的。人的感官和物理儀器都有一定的分辨率,對低于一定尺度的信號(hào)的細(xì)節(jié)是無法認(rèn)識(shí)的,因此對低于一定尺度信號(hào)的研究也是沒有意義的。為此,應(yīng)該將信號(hào)分解為對應(yīng)不同尺度的近視分量和細(xì)節(jié)分量。小波分解的意義就在于能夠在不同尺度上對信號(hào)進(jìn)行分析,而且對不同尺度的選擇可以根據(jù)不同的目的來確定。信號(hào)的近視分量一般為信號(hào)的低頻分量,其細(xì)節(jié)分量一般為信號(hào)的高頻分量。因此,對信號(hào)的小波分量可以等效于信號(hào)通過了一個(gè)濾波器組,其中一個(gè)濾波器為低通濾波器,另一個(gè)為高通濾波器。Matlab工具箱中的dwt()和idwt()函數(shù)可實(shí)現(xiàn)一維離散小波變換及其反變換,wavedec()和waverec()用于一維信號(hào)的多層小波分解和多層重構(gòu)等[7]。2.3.3圖像增強(qiáng)功能圖像增強(qiáng)是數(shù)字圖像處理過程中常用的一種方法,目的是采用一系列技術(shù)去改善圖像的視覺效果或?qū)D像轉(zhuǎn)換成一種更適合于人眼觀察和機(jī)器自動(dòng)分析的形式。常用的圖像增強(qiáng)方法有以下幾種。1.灰度直方圖均衡化均勻量化的自然圖像的灰度直方圖通常在低灰度區(qū)間上頻率較大,使得圖像中較暗區(qū)域中的細(xì)節(jié)看不清楚。采用直方圖修整可使原圖像灰度集中的區(qū)域拉開或使灰度分布均勻,從而增大反差,使圖像的細(xì)節(jié)清晰,達(dá)到增強(qiáng)目的。直方圖均衡化可用histeq()函數(shù)實(shí)現(xiàn)。2.灰度變換法照片或電子方法得到的圖像,常表現(xiàn)出低對比度(即整個(gè)圖像偏亮或便暗),為此需要對圖像中的每一像素的灰度級(jí)進(jìn)行灰度變換,擴(kuò)大圖像灰度范圍,以達(dá)到改善圖像質(zhì)量的目的。這一灰度調(diào)整過程可用imadjust()函數(shù)實(shí)現(xiàn)。3.平滑與銳化濾波平滑技術(shù)用于平滑圖像中的噪聲,基本采用在空間域上的求平均值或中值,或在頻域上采取低通濾波。在灰度連續(xù)變化的圖像中,通常認(rèn)為與相鄰濾波則可以削弱圖像的高頻成分,平滑了圖像信號(hào),但也可能使圖像目標(biāo)區(qū)域的邊界變得模糊。而銳化技術(shù)采用的是頻域上的高通濾波方法,通過增強(qiáng)高頻成分減少圖像中的模糊,特別是模糊的邊緣部分得到了增強(qiáng),但同時(shí)使也放大了圖像的噪聲。在Matlab中,各種濾波方法都是在空間域通過不同的卷積模板(即濾波算子)實(shí)現(xiàn),可用fspecial()函數(shù)創(chuàng)建預(yù)定義的濾波算子,然后用filter()或conv2()函數(shù)在實(shí)現(xiàn)卷積運(yùn)算的基礎(chǔ)上進(jìn)行濾波[8]。2.3.4邊緣檢測和圖像分割功能邊緣檢測是一種重要的區(qū)域處理方法。邊緣是所要提取目標(biāo)和背景的分界線,提取出邊緣才能將目標(biāo)和背景區(qū)分開來。邊緣檢測是利用物體和背景在某種圖像特征上的差異來實(shí)現(xiàn)的,這些差異包括灰度、顏色或者紋理特征。實(shí)際上,就是檢測圖像特性發(fā)生變化的位置。邊緣檢測包括兩個(gè)基本內(nèi)容:一是抽取出反映灰度變換的邊緣點(diǎn);二是剔除某些邊界點(diǎn)或填補(bǔ)邊界間斷點(diǎn)。并將這些邊緣連接成完整的線。如果一個(gè)像素落在邊界上,那么它的領(lǐng)域?qū)⒊蔀橐粋€(gè)灰度級(jí)變化地帶。對這種變化最有用的兩個(gè)特征是灰度的變化率和方向。邊緣檢測算子可以檢測每個(gè)像素的領(lǐng)域,并對灰度變化率進(jìn)行量化,也包括對方向的確定,其中大多數(shù)是基于方向?qū)?shù)掩模求卷積的方法。Matlab工具箱提供的edge()函數(shù)可針對sobel算子、prewitt算子、roberts算子,log算子和canny算子實(shí)現(xiàn)檢測邊緣的功能?;诨叶鹊膱D像分割方法也可以用簡單的Matlab代碼實(shí)現(xiàn)[9]。2.3.5MatlabGui圖形用戶界面是有別于VC或Java的一種新型界面開發(fā)方式,其形象生動(dòng)的表現(xiàn)方式在算法的演示驗(yàn)證中或者外場試驗(yàn)中都發(fā)揮了一定的作用。對于熟悉Matlab而不想編寫大量VC代碼的科研人員來講,Matlab/Gui無疑是一個(gè)最佳選擇。它即能嵌入已有的仿真程序,又能把仿真的圖形化結(jié)果以人機(jī)交互的動(dòng)態(tài)方式呈現(xiàn)給操作者或客戶,從而給人以深刻的影響,同時(shí)仿真代碼的不可見性為一些不熟悉Matlab的群體提供了操作界面的可能。MatlabGui簡介圖形用戶界面(graphicaluserinterface,Gui)是由窗口、光標(biāo)、按鍵、菜單、文字說明等對象(Object)構(gòu)成的一個(gè)用戶界面。用戶通過一定的方法(如鼠標(biāo)或鍵盤)選擇、激活這些圖形對象,使計(jì)算機(jī)產(chǎn)生某種動(dòng)作或變化,比如實(shí)現(xiàn)計(jì)算、繪圖等。假如科技工作者僅僅執(zhí)行數(shù)據(jù)分析、解方程等工作,一般不會(huì)考慮Gui的制作。但是如果想向客戶提供應(yīng)用程序,想進(jìn)行某種技術(shù)、方法的演示,想制作一個(gè)供反復(fù)使用且操作簡單的專用工具,那么圖形用戶界面是最好的選擇之一。Matlab為表現(xiàn)其基本功能而設(shè)計(jì)的演示程序demo是使用圖形界面的最好范例。Matlab的用戶在指令窗口中運(yùn)行demo打開圖形界面后,只要用鼠標(biāo)進(jìn)行選擇和點(diǎn)擊,就可瀏覽豐富多彩的內(nèi)容。開發(fā)實(shí)際的應(yīng)用程序時(shí)應(yīng)該盡量保持程序的界面友好,因?yàn)槌绦蚪缑媸菓?yīng)用程序和用戶進(jìn)行交互的環(huán)境。在當(dāng)前情況下,使用圖形用戶界面是最常用的方法。提供圖形用戶界面可使用戶更方便地使用應(yīng)用程序,不需要了解應(yīng)用程序怎樣執(zhí)行各種命令,只需要了解圖形界面組件的使用方法;同時(shí),不需要了解各種命令是如何執(zhí)行的,只要通過用戶界面進(jìn)行交互操作就可以正確執(zhí)行程序。在Matlab7.0中,圖形用戶界面是一種包含多種圖形對象的界面,典型的圖形界面包括圖形顯示區(qū)域、功能按鈕空間以及用戶自定義的功能菜單等。為了讓界面實(shí)現(xiàn)各種功能,需要對各個(gè)圖形對象進(jìn)行布局和時(shí)間編程。這樣,當(dāng)用戶激活對應(yīng)的Gui對象時(shí),就能執(zhí)行相應(yīng)的時(shí)間行為。最后,必須保存和發(fā)布自己創(chuàng)建的Gui,使得用戶可以應(yīng)用Gui對象。在Matlab中,所有對象都可以使M文件進(jìn)行編寫。Gui也是一種Matlab對象,因此,可以使用M文件來創(chuàng)建Gui。使用M文件創(chuàng)建Gui的方法也是最基礎(chǔ)的,使用其他方法創(chuàng)建Gui圖形界面時(shí),實(shí)現(xiàn)圖形控件的各種功能時(shí),也需要編寫相應(yīng)程序代碼。除了使用M文件來創(chuàng)建Gui對象之外,Matlab還為用戶開發(fā)圖形界面提供了一個(gè)方便高效的集成開發(fā)環(huán)境:Matlab圖形用戶界面開發(fā)環(huán)境(Matlabgraphicaluserinterfacedevelopmentenvironment)簡稱GuiDE,其主要是一個(gè)界面設(shè)計(jì)工具集。Matlab7.0將所有Gui所支持的用戶控件都集成起來,同時(shí)提供界面外觀、屬性和行為響應(yīng)方法的設(shè)置方法。除了可以使用GuiDE創(chuàng)建Gui之外,還可以將設(shè)計(jì)好的Gui界面保存為一個(gè)FIG資源文件,自動(dòng)生成對應(yīng)的M文件。該M文件包含了Gui初始化代碼和組建界面布局的控制代碼。使用GuiDE創(chuàng)建Gui對象執(zhí)行效率高,可以交互式地進(jìn)行組件布局,還能生成保存和發(fā)布Gui的對應(yīng)文件。本文就是運(yùn)用這種方法創(chuàng)建的Gui。FIG文件:該文件包含Gui圖形窗口及其子對象的完全描述,包含所有相關(guān)對象的屬性信息,可以調(diào)用hgsave命令或者使用M文件編輯器的File>Save命令生成該文件。FIG文件是一個(gè)二進(jìn)制文件,包含系列化的圖形窗口對象。所有對象的屬性都是用戶創(chuàng)建圖形窗口時(shí)保存的屬性。該文件最主要的功能是對象句柄的保存。M文件:該文件包含Gui設(shè)計(jì)、控制函數(shù)及控件的回調(diào)函數(shù),主要用來控制Gui展開時(shí)的各種特征。該文件基本上可以分為Gui初始化和回調(diào)函數(shù)2個(gè)部分,控件的回調(diào)函數(shù)根據(jù)用戶與Gui的具體交互行為分別調(diào)用。應(yīng)用程序M文件使用openfig命令來顯示Gui對象,但是該文件不包含用戶界面設(shè)計(jì)的代碼,對應(yīng)代碼由FIG文件保存[10]。MatlabGui的一般制作步驟簡單說來,一個(gè)好的界面應(yīng)遵循以下3個(gè)原則:簡單性(Simplicity)、一致性(Consistency)及習(xí)常性(Familiarity)。界面制作包括界面設(shè)計(jì)和程序?qū)崿F(xiàn)。具體制作步驟如下:1.分析界面所要求實(shí)現(xiàn)的主要功能,明確設(shè)計(jì)任務(wù);2.在稿紙上繪出界面草圖,并站在使用者的角度來審查草圖;3.按構(gòu)思的草圖,上機(jī)制作(靜態(tài))界面,并對其進(jìn)行檢查;4.編寫界面動(dòng)態(tài)功能的程序,對功能進(jìn)行逐項(xiàng)檢查。以上過程只是一般原則,在設(shè)計(jì)中,步驟之間也可能要交叉執(zhí)行或復(fù)合執(zhí)行;設(shè)計(jì)和實(shí)現(xiàn)過程往往不是一步到位的,可能需要反復(fù)修改,才能獲得滿意的界面。建議先進(jìn)行界面布局編碼,后進(jìn)行動(dòng)態(tài)交互功能的編碼[11]。MatlabGui設(shè)計(jì)工具簡介在GuiDE設(shè)計(jì)環(huán)境中,需要用到的工具有編輯器、控件布置編輯器、菜單編輯器、對象瀏覽器、網(wǎng)格標(biāo)尺設(shè)置編輯器以及Gui應(yīng)用屬性設(shè)置編等。1.屬性編輯器(PropertiesInspector)打開屬性編輯器的方法有多種,最常用的,選中控件對象以后,點(diǎn)擊工具條上的屬性設(shè)置按鈕,即可打開屬性編輯器。通過該屬性編輯器來對所選圖形對象設(shè)置相關(guān)屬性。2.控件布置編輯器(AlignmentObjects)在編輯CUI過程中,通過控件布置編輯器可方便地設(shè)置面板上Gui控件的布局。選中需要對的對象,然后選擇工具條上的控件布置按鈕,即可打開控件布置編輯器。在控件布置編輯器中可以設(shè)置Gui控件水平以及垂直布局,包括對齊方式以及控件間距等。3.對象瀏覽器(ObjectBrowser)在Gui面板中點(diǎn)擊對象瀏覽按鈕可打開對象覽器,在該瀏覽器中可以方便地顯示出所有的圖形對象,單擊該對象則可以打開相應(yīng)的屬性編輯器。4.菜單編輯器(MenuEditor)在Gui面板中點(diǎn)擊菜單編輯按鈕可打開菜單輯器,通過菜單編輯器可以為圖形界面添加、設(shè)置和修改菜單項(xiàng),以及為右鍵添加快捷菜單。5.網(wǎng)格標(biāo)尺設(shè)置編輯器(GridandRulers)通過網(wǎng)格標(biāo)尺設(shè)置編輯器,可以在Gui面板添加網(wǎng)格以及標(biāo)尺,來方便用戶的界面設(shè)計(jì)。選擇GuiDE主菜單中的Tools/GridandRulers即可標(biāo)尺設(shè)置編輯器。6.Gui應(yīng)用屬性設(shè)置編輯器(GuiApplitionOptions)通過該編輯器可以設(shè)定Gui界面縮放形式、Gui對句柄操作的響應(yīng)方式,以及定義Gui方式。選擇GuiDE主菜單中的Tools/GuiOption即可打開Gui應(yīng)用屬性設(shè)置編輯器。7.Gui設(shè)計(jì)面板Gui設(shè)計(jì)面板是上述Gui設(shè)計(jì)工具應(yīng)臺(tái),如圖3-1所示,面板上部提供了菜單和常用工具按鈕,左邊提供了多種Gui控件,如按鈕、單選按鈕、選框、文本框等。進(jìn)行Gui設(shè)計(jì)時(shí),首先單擊G板左邊所需的控件,然后在右邊的圖形界面編輯區(qū)中再次單擊某一恰當(dāng)?shù)奈恢?,這時(shí)將在該位置上為圖形界面添加一相應(yīng)的控件,接下來,通過屬性編輯器和對齊編輯器對各控件設(shè)置相關(guān)屬性和進(jìn)行界面布置,以完善界面功能。圖2-1Gui設(shè)計(jì)面板2.3.6編制回調(diào)程序完成控件的布局之后,也就完成了整個(gè)圖形界面的結(jié)構(gòu)設(shè)計(jì),接下來則是最為重要的功能設(shè)計(jì),即要編制菜單、控件的回調(diào)程序。若要編制某一控件的回調(diào)程序,用右鍵單擊該控件,在彈出菜單中點(diǎn)擊ViewCallbacks,然后從子菜單中選擇一種程序的方式,就可以編制回調(diào)程序了,如Callback指單擊控件時(shí)激活回調(diào)程序完成一定的功能。菜單的回調(diào)程序在菜單編輯器的Callbacks文本框中給出。2.7本章小結(jié)本章對Matlab的歷史,功能進(jìn)行了介紹,并敘述了Matlab在數(shù)字圖像中的應(yīng)用。包括常用圖像操作,圖像變換功能,圖像增強(qiáng)功能,邊緣檢測和圖像分割以及MatlabGui。第三章邊緣檢測技術(shù)邊緣檢測技術(shù)圖像是最直接的視覺信息,包含著最原始的巨大信息,其中最重要的信息是由它的邊緣和輪廓提供的。圖像邊緣是圖像最基本的特征,邊緣中包含著有價(jià)值的目標(biāo)邊界信息,這些信息可以用于圖像分析、目標(biāo)識(shí)別以及邊緣濾波。所謂邊緣,是指其周圍像素灰度有階躍變化或屋頂變化的那些像素的集合。圖像邊緣檢測是圖像處理與分析中最基礎(chǔ)的內(nèi)容之一,同時(shí)由于成像過程中的投影、混合、畸變和噪聲等導(dǎo)致圖像特征的模糊和變形,且圖像邊緣和噪聲均為頻域中的高頻分量,這給邊緣檢測帶來了困難。邊緣檢測的難題是檢測精度和抗噪性能之間矛盾。對于圖像邊緣檢測,尋求算法較簡單、能較好解決邊緣檢測精度與抗噪性能協(xié)調(diào)問題的算法,一直是圖像處理與分析研究的主要問題之一。圖像邊緣檢測通常有經(jīng)典的基于微分、基于小波與分形理論、基于數(shù)學(xué)形態(tài)學(xué),以及近年來發(fā)展的基于模糊學(xué)、基于神經(jīng)網(wǎng)絡(luò)、基于遺傳算法等多種圖像邊緣檢測方法。本章主要是分析基于微分的邊緣檢測方法,而其他的邊緣檢測方法也會(huì)簡略的做些介紹。3.1微分邊緣檢測技術(shù)圖像邊緣檢測與提取的研究一直貫穿與圖像處理與分析的始終,傳統(tǒng)的圖像邊緣檢測方法大多可歸結(jié)為圖像高頻分量的增強(qiáng)過程,微分運(yùn)算是邊緣檢測與提取的主要手段。人們最早提出了一階微分邊緣檢測算子,如Roberts算子、Sobel算子、Prewitt算子和Canny算子等,這些算子由于梯度或一階微分算子通常在圖像邊緣附近的區(qū)域內(nèi)產(chǎn)生較寬的響應(yīng),即使用一階微分算子的方法多是在梯度值大于某一值時(shí)就認(rèn)為此點(diǎn)是邊緣點(diǎn),但這種方法導(dǎo)致檢測的邊緣點(diǎn)太多。故采用上述算子常需做細(xì)化處理,這就影響了邊緣定位的精度。一種更好的方法就是求局部的最大值點(diǎn),并認(rèn)為它們是邊緣點(diǎn),這樣就變成了求圖像的二階微分,一階導(dǎo)的最大值對應(yīng)的是二階導(dǎo)的過零交叉點(diǎn),利用二階導(dǎo)數(shù)零交叉所提取的邊緣寬度為一個(gè)像素,所得的邊緣結(jié)果無需細(xì)化,有利于邊緣的精度定位。實(shí)際上拉普拉斯算子在機(jī)器視覺中并不太常用,因?yàn)槿魏伟卸A導(dǎo)數(shù)的算子比只包含一階導(dǎo)數(shù)的算子更容易受噪聲影響,甚至一階導(dǎo)數(shù)很小的局部峰值也能導(dǎo)致二階導(dǎo)數(shù)的過零點(diǎn)。為了避免噪聲的影響,必須采用特別有效的濾波方法,解決這一問題的算法就是LOG算法,圖像首先與高斯濾波器進(jìn)行卷積,這樣平滑了圖像,又降低了噪聲,將孤立噪聲點(diǎn)和較小的結(jié)構(gòu)組織濾除,由于平滑后會(huì)導(dǎo)致邊緣的延展,因此,邊緣檢測器只考慮那些具有局部梯度最大值的點(diǎn)作為邊緣點(diǎn)。二階微分形式的邊緣檢測算子是目前邊緣檢測的主要手段。邊緣檢測的基本問題是檢測精度與抗噪性能間的矛盾。由于圖像邊緣和噪聲均為頻域中的高頻分量,簡單的微分運(yùn)算會(huì)增加圖像中的噪聲,因此,在微分運(yùn)算之前應(yīng)采取適當(dāng)?shù)钠交瑸V波以減少高頻分量中噪聲的影響。針對此問題,產(chǎn)生了Canny邊緣檢測技術(shù),Canny提出了由四個(gè)指數(shù)函數(shù)線性組合形成的最佳邊緣檢測算子,其方法的實(shí)質(zhì)是用一個(gè)準(zhǔn)高斯函數(shù)作平滑運(yùn)算,然后以帶方向的一階微分定位導(dǎo)數(shù)最大值,它可用高斯函數(shù)的梯度來近視,屬于具有平滑功能的一階微分算子。以下就是這幾種經(jīng)典的邊緣檢測算子的原理[12]。3.1.1Roberts算子Roberts算子是一種最簡單的算子,是一種利用利用局部差分算子尋找邊緣的算子,對具有陡峭的低噪聲的圖像效果最好[13]。其模板:圖3-1Roberts算子模板Roberts算子的定義為:(3-1)由于上述算法的處理工作量很大,因此在實(shí)用上常采用絕對差算法對上式化簡如下:(3-2)及(3-3)Robert算子對具有陡峭的低噪聲圖像效果較好。%roberts算子邊緣檢測實(shí)現(xiàn)f=imread('D:\lena.bmp');i=rgb2gray(f);%ConvertanRGBimageorcolormaptograyscalesubplot(1,2,1);imshow(i);%顯示原圖title('theoriginalimage');bw1=edge(i,'roberts');subplot(1,2,2);imshow(bw1);title('afterroberts');3.1.2Sobel算子Sobel算子有兩個(gè)卷積計(jì)算核,如圖3-2所示。圖像中的每個(gè)點(diǎn)都用這兩個(gè)核作卷積,第一個(gè)核通常對垂直邊緣相應(yīng)最大,第二個(gè)核對水平邊緣相應(yīng)最大。兩個(gè)卷積的最大值作為該點(diǎn)的輸出值,運(yùn)算結(jié)果是一幅邊緣幅度圖像。Sobel算子對灰度漸變和噪聲較多的圖像值處理效果較好[14]。圖3-2Sobel算子模板Sobel算子定義為:(3-4)(3-5)(3-6)用模板表示,為:(3-7)Sobel算子通常對灰度漸變和噪聲較多的圖像處理得較好。%sobel算子邊緣檢測實(shí)現(xiàn)f=imread('D:\lena.bmp');i=rgb2gray(f);%ConvertanRGBimageorcolormaptograyscalesubplot(1,2,1);imshow(i);title('theoriginalimage');bw2=edge(i,'sobel');subplot(1,2,2);imshow(bw2);title('aftersobel');3.1.3Prewitt算子與Sobel算子相同,如圖3-3所示。圖像中的每個(gè)點(diǎn)都用這兩個(gè)模板做卷積分,并且取最大值作為輸出,結(jié)果是一幅邊緣幅度的圖像。Prewitt算子對灰度漸變和噪聲較多的圖像值處理效果較好[15]。圖3-3Prewitt算子模板Prewitt算子定義為:(3-8)用模板表示為:(3-9)Prewitt算子通常對灰度和噪聲較多的圖像處理得較好。%prewitt算子邊緣檢測實(shí)現(xiàn)f=imread('D:\lena.bmp');i=rgb2gray(f);%ConvertanRGBimageorcolormaptograyscalesubplot(1,2,1);imshow(i);title('theoriginalimage');bw3=edge(i,'prewitt');subplot(1,2,2);imshow(bw2);title('afterprewitt');3.1.4拉普拉斯-高斯算子(Log算子)Log算子是一種微分算子,將在邊緣處產(chǎn)生一個(gè)陡峭的零交叉。Log算子是一個(gè)線性的、時(shí)不變的算子,它通過尋找圖像灰度值中二階微分是0的點(diǎn)來檢測邊緣點(diǎn)。Log算子就是對圖像進(jìn)行濾波和微分的過程,是利用旋轉(zhuǎn)對稱的Log模板與圖像做卷積,確定濾波器輸出的零交叉位置,模板如圖3-4所示。圖3-4Log算子模板在Log算子的檢測過程中,首先要用高斯低通濾波器將圖像進(jìn)行預(yù)平滑,然后利用Log算子找到圖像中的陡峭邊緣,最后用0灰度值進(jìn)行二值化,產(chǎn)生閉合、連通的輪廓,消除所有內(nèi)部點(diǎn)。但利用log算子檢測邊緣經(jīng)常出現(xiàn)雙象素邊界,且對噪聲比較敏感。所以,一般用它來判斷邊緣像素是位于圖像的明區(qū)還是暗區(qū)[16]。高斯濾波器的函數(shù)形式為:(3-10)其中σ是標(biāo)準(zhǔn)差。令,對其取二階導(dǎo)數(shù)得的拉普拉斯算子為:(3-11)LOG算子的優(yōu)點(diǎn)是過濾了噪聲,其不足在于會(huì)將原有的邊緣給平滑了。%log算子邊緣檢測實(shí)現(xiàn)f=imread('D:\lena.bmp');i=rgb2gray(f);%ConvertanRGBimageorcolormaptograyscalesubplot(1,2,1);imshow(i);title('theoriginalimage');bw4=edge(i,'log');subplot(1,2,2);imshow(bw4);title('afterlog');3.1.5Canny算子Canny算子是一種比較新的邊緣檢測算子,具有很好的邊緣檢測性能,得到了越來越廣泛的應(yīng)用。Canny算子邊緣檢測的方法是尋找圖像梯度的局部最大值。梯度是用高斯濾波器的導(dǎo)數(shù)計(jì)算的Canny方法使用兩個(gè)閾值來分別檢測強(qiáng)邊緣和弱邊緣,而且僅當(dāng)強(qiáng)邊緣和弱邊緣相連時(shí),弱邊緣才會(huì)包含在輸出中。因此,此方法不容易受噪聲的干擾,能夠在噪聲和邊緣檢測之間取得較好的平衡,能夠檢測到真正的弱邊緣。Canny算子檢測階躍性邊緣時(shí)效果極好,去噪能力強(qiáng)。但由于檢測閾值固定,當(dāng)檢測具有模糊邊緣的圖像時(shí),很可能導(dǎo)致平滑掉部分邊緣信息。因此,為了能更精確地檢測出目標(biāo)邊界,可先對圖像進(jìn)行預(yù)處理,將其分割成若干子圖像,然后針對每幅子圖像中具體情況選用不同的閾值,采用針對各子圖所選擇的閾值對圖像進(jìn)行動(dòng)態(tài)閾值分割。實(shí)際應(yīng)用時(shí)可以根據(jù)需要來調(diào)整子圖像的大小,以獲取所需的大小,這應(yīng)該是一種可行的方法[17]。Canny算子可以用分解的方法來提高速度,即把G的濾波卷積模板分解為兩個(gè)一維的行列濾波器(3-12)(3-13)其中,k為常數(shù)將式(3-12)和式(3-13)分別與圖像卷積,得到輸出:,令,則反映了圖像上點(diǎn)處的邊緣強(qiáng)度,是圖像的點(diǎn)處的法向矢量(正交于邊緣方向的方向)。%canny算子邊緣檢測實(shí)現(xiàn)f=imread('D:\lena.bmp');i=rgb2gray(f);%ConvertanRGBimageorcolormaptograyscalesubplot(1,2,1);imshow(i);title('theoriginalimage');bw5=edge(i,'canny');subplot(1,2,2);imshow(bw5);title('aftercanny');3.1.6邊緣檢測方法結(jié)果比較原圖和經(jīng)過Wavelet,Canny,Log,Prewitt后的圖形的比較。圖3-5原圖和經(jīng)過幾種算子后的圖形對比通過以上對經(jīng)典邊緣檢測算子的分析,得出以下結(jié)論:1.Roberts算子簡單直觀,Laplace算子利用二階導(dǎo)數(shù)零交叉特性檢測邊緣。兩種算子定位精度高,但受噪聲影響大;Laplace算子只能獲得邊緣位置信息,不能得到邊緣的方向等信息。2.Sobel算子和Prewitt算子具有平滑作用,能濾除一些噪聲,去掉部分偽邊緣,但同時(shí)也平滑了真正的邊緣;定位精度不高。Sobel算子可提供最精確的邊緣方向估計(jì)。3.Sobel算子、Prewitt算子檢測斜向階躍邊緣效果較好,Roberts算子檢測水平和垂直邊緣效果較好。4.Canny算子檢測階躍性邊緣時(shí)效果極好,去噪能力強(qiáng)。是這幾種算子中檢測到的邊緣最清晰的一種。3.2基于小波與分形理論邊緣檢測技術(shù)小波分析是當(dāng)前應(yīng)用數(shù)學(xué)和工程中一個(gè)迅速發(fā)展的領(lǐng)域。隨著小波理論和分形理論的廣泛應(yīng)用,20世紀(jì)90年代初期關(guān)于小波理論的邊緣檢測方法和基于分形特征的邊緣檢測與提取方法也相繼出現(xiàn)?;谛〔ɡ碚摰倪吘墮z測方法因小波理論時(shí)頻分析的優(yōu)越性而優(yōu)于一般的傳統(tǒng)圖像邊緣檢測方法,它可檢測出圖像在不同尺度下的邊緣特征。小波變換在時(shí)域和頻域同時(shí)具有良好的局部化性質(zhì),它能將信號(hào)或圖像分解成交織在一起的多種尺度成分,并對大小不同的尺度成分采用相應(yīng)粗細(xì)的時(shí)域或空域取樣步長,對高頻信號(hào)細(xì)處理,對低頻信號(hào)粗處理,從而能夠不斷聚焦到對像的任意微小細(xì)節(jié)。邊緣檢測的是找出信號(hào)突變部分的位置,這在數(shù)學(xué)上常表示為間斷點(diǎn)、尖點(diǎn)等。而在圖像信號(hào)上,這些奇異點(diǎn)就是圖像的邊緣點(diǎn)。由于實(shí)際圖像的空間頻率成分十分復(fù)雜,用普通的方法直接提取邊緣往往并不是十分有效,而用小波變換可以將圖像分解成不同頻率成分的小波分量,然后再從這些不同層次的小波分量中找出信號(hào)本身的特征以便更有效提取邊緣像素。雖然小波正交基用途廣泛,但也存在著不足,尤其是小波正交基的結(jié)構(gòu)復(fù)雜[18]。3.3基于數(shù)學(xué)形態(tài)學(xué)的邊緣檢測技術(shù)數(shù)學(xué)形態(tài)學(xué)是20世紀(jì)60年代由法國科學(xué)家Serra和德國的Matheron提出的,到20世紀(jì)70年代中期完成了理論論證。數(shù)學(xué)形態(tài)學(xué)是分析幾何形狀和結(jié)構(gòu)的數(shù)學(xué)方法,是建立在集合代數(shù)基礎(chǔ)上,用集合論方法定量描述幾何結(jié)構(gòu)的科學(xué)。數(shù)學(xué)形態(tài)學(xué)由一組形態(tài)學(xué)的代數(shù)運(yùn)算子組成。最常用的有7種基本變化,分別是膨脹、腐蝕、開、閉、擊中、薄化、厚化。其中,膨脹和腐蝕是兩種最基本、最重要的變換,其他變換由這兩種變化的組合來定義。用這些算子及其組合進(jìn)行圖像形狀和結(jié)構(gòu)的分析處理包括圖像分割、特征抽取、邊緣檢測等方面的工作。因而不同于其他的圖像處理理論(如空間域、頻率域的變換方法),是一種用于圖像處理的新理論和新方法。基于數(shù)學(xué)形態(tài)學(xué)的圖像邊緣檢測方法與微分算子法、模板匹配法等常用的邊緣檢測方法相比,具有算法簡單、運(yùn)算速度快、效果好等優(yōu)點(diǎn)。用形態(tài)學(xué)邊緣檢測方法所得的結(jié)果圖像,在邊緣的連續(xù)性及各項(xiàng)同性方面都優(yōu)于傳統(tǒng)方法,形態(tài)學(xué)邊緣檢測方法對圖像細(xì)節(jié)和邊緣定位也有相當(dāng)好的效果,所檢測出的邊緣寬度與所使用的結(jié)構(gòu)元素形狀和大小密切相關(guān),當(dāng)結(jié)構(gòu)元素的尺寸(刻度數(shù))增大時(shí),檢出的邊緣寬度將隨之增大。因而,合理地調(diào)節(jié)結(jié)構(gòu)元素的尺寸將能有效地去除噪聲并能很好地保護(hù)細(xì)節(jié)[19]。3.4基于模糊學(xué)的邊緣檢測技術(shù)圖像處理過程實(shí)際上是對圖像灰度矩陣的處理過程。圖像像素的灰度值都是一些確定值,圖像的模糊化就是將圖像灰度值轉(zhuǎn)換到模糊集中,用一個(gè)模糊值來代表圖像的明暗程度。模糊梯度法是基于圖像灰度梯度變化的原理而產(chǎn)生的。利用模糊理論的不確定性來反映圖像灰度梯度變化過程的模糊性,并根據(jù)像素的隸屬度來確定邊緣穿越的位置,可使邊緣檢測更加準(zhǔn)確。但由于其算法的復(fù)雜性,實(shí)現(xiàn)很困難[6]。3.5基于神經(jīng)網(wǎng)絡(luò)的邊緣檢測技術(shù)近年來,人工神經(jīng)網(wǎng)絡(luò)正廣泛地被用于模式識(shí)別、信號(hào)與圖像處理、人工智能及自動(dòng)控制等領(lǐng)域。神經(jīng)網(wǎng)絡(luò)的主要問題是輸入與輸出層的設(shè)計(jì)問題、網(wǎng)絡(luò)數(shù)據(jù)的準(zhǔn)備問題、網(wǎng)絡(luò)權(quán)值的準(zhǔn)備及確定問題、隱層數(shù)及結(jié)點(diǎn)的問題、網(wǎng)絡(luò)的訓(xùn)練問題。圖像邊緣檢測本質(zhì)上屬于模式識(shí)別問題,而神經(jīng)網(wǎng)絡(luò)能很好地解決模式識(shí)別問題。因此,用樣本圖像對多神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,將訓(xùn)練后的網(wǎng)絡(luò)再進(jìn)行實(shí)測圖像的邊緣檢測。在網(wǎng)絡(luò)訓(xùn)練中,所提取的特征要考慮噪聲點(diǎn)和實(shí)際邊緣的差異,同時(shí)去除噪聲點(diǎn)形成的虛假邊緣,因此該方法具有較強(qiáng)的抗噪性能。在學(xué)習(xí)算法的設(shè)計(jì)中,常規(guī)的對圖像進(jìn)行混合的結(jié)構(gòu)訓(xùn)練樣本對于神經(jīng)網(wǎng)絡(luò)性能具有重要影響。使用神經(jīng)網(wǎng)絡(luò)的方法得到的邊緣圖像邊界連續(xù)性較好,邊界封閉性好,而且對于任何灰度圖的檢測可以得到很好的效果[20]。3.6基于遺傳算法的邊緣檢測技術(shù)遺傳算法是一類基于自然選擇和遺傳學(xué)原理的有效搜索方法,許多領(lǐng)域成功地應(yīng)用遺傳算法得到了問題的滿意解答。雖然GAS(GeneticAlgorithms),通常是在并行計(jì)算機(jī)上實(shí)現(xiàn),而大規(guī)模并行計(jì)算機(jī)的日益普及,又為并行GAs奠定了物質(zhì)基礎(chǔ)。對于圖像的邊緣提取,采用二階的邊緣檢測算子處理后要進(jìn)行過零點(diǎn)檢測,其計(jì)算量很大而且硬件實(shí)時(shí)資源占用空間大且速度慢,所以學(xué)術(shù)界提出了一種二次搜索尋優(yōu)的閾值選取策略。通過遺傳算法進(jìn)行邊緣提取閾值的自動(dòng)選取,能夠顯著地提高閾值選取的速度,可以對視覺系統(tǒng)所產(chǎn)生的邊緣圖像進(jìn)行閾值的實(shí)時(shí)自動(dòng)選取,增強(qiáng)了整個(gè)視覺系統(tǒng)的實(shí)時(shí)性。綜上所述,在圖像邊緣檢測領(lǐng)域有微分方法、基于小波與分形理論的方法、基于形態(tài)學(xué)、基于模糊學(xué)、基于神經(jīng)網(wǎng)絡(luò)和基于遺傳算法等多種檢測手段。它們都不是一種具有絕對優(yōu)勢的方法,有的方法邊緣檢測精度高,但抗噪聲性能較差;有的方法解決了抗噪聲性能差的問題,但檢測精度又不夠。還有一些算法盡管在一定程度上較好地解決了上述兩者的協(xié)調(diào)問題,但算法復(fù)雜,實(shí)現(xiàn)困難,運(yùn)算時(shí)間長。可見,無論哪一種邊緣檢測算法在解決一定問題的同時(shí),都存在不同類型的缺陷。實(shí)質(zhì)上邊緣檢測作為視覺的初級(jí)階段,通常認(rèn)為是一個(gè)非良態(tài)問題,很難從根本上解決。因而,尋求算法較簡單、能較好解決邊緣檢測精度與抗噪聲性能協(xié)調(diào)問題的邊緣檢測算法,將一直是圖像處理與分析中研究的主要問題之一,還有許多工作需要進(jìn)一步研究[21]。3.7本章小結(jié)本章詳細(xì)的敘述了經(jīng)典的基于微分的邊緣檢測技術(shù),并且對這幾種算子進(jìn)行了Matlab仿真。然后簡略的對基于小波與分形理論、基于數(shù)學(xué)形態(tài)學(xué),以及近年來發(fā)展的基于模糊學(xué)、基于神經(jīng)網(wǎng)絡(luò)、基于遺傳算法等多種圖像邊緣檢測方法進(jìn)行了介紹。第四章基于Matlab的圖像邊緣檢測系統(tǒng)PAGEPAGE33第四章基于Matlab的圖像邊緣檢測系統(tǒng)本次設(shè)計(jì)使用Matlab語言實(shí)現(xiàn)該系統(tǒng),其用戶界面分別介紹如下。4.1程序主界面打開main.fig如圖4-1本軟件包括六個(gè)Pushbutton,兩個(gè)axes和一個(gè)Staictext。如要改變控件的屬性,雙擊該控件,即可打開屬性編輯器,如圖4-1所示為buttongroup的屬性編輯器,當(dāng)然也可通過其他的方式打開屬性編輯器,然后通過該編輯器為空間設(shè)置相關(guān)屬性。String來設(shè)置控件對象所顯示的內(nèi)容。Background用以設(shè)置控件的顏色。Fontsize用以設(shè)置字體的顏色,F(xiàn)oregroundColor屬性用來設(shè)置控件的前景顏色??丶奈恢煤痛笮】梢酝ㄟ^改變position值來調(diào)整。另外,當(dāng)控件需要對齊時(shí),可以通過對其編輯器進(jìn)行修正。具體的各個(gè)控件的屬性設(shè)置這里不詳細(xì)敘述。圖4-1Gui界面下的程序主界面圖4-2buttongroup的屬性編輯器完成控件布局之后,開始編制回調(diào)程序。如前面所講的,在Gui編輯狀態(tài)下用鼠標(biāo)右鍵單擊需要編寫回調(diào)程序的控件,打開右鍵快捷菜單,從ViewCallbacks中選擇一種回調(diào)方式,打開Matlab自動(dòng)生成的.m文件,并且系統(tǒng)會(huì)自動(dòng)生成如下語句:functionHname—Callback(hObject,eventdata,handles)。其中,Hname為控件對象的Tag(標(biāo)簽)開發(fā)者即可在該語句下編寫當(dāng)前控件的回調(diào)程序,Callback是其中的一種回調(diào)方式,根據(jù)需要可選擇其他回調(diào)方式,如CreatFcn,DeleteFcn,ButtonDownFcn,KeyPressFcn等等。至此完成了主界面的設(shè)計(jì),運(yùn)行后如圖4-3所示。圖形文件將保存Gui面板以及相應(yīng)控件、菜單設(shè)計(jì),M文件則保存程序代碼。4.2仿真結(jié)果以下是軟件實(shí)驗(yàn)的仿真截圖圖4-3軟件實(shí)驗(yàn)的仿真圖圖4-4Prewitt邊緣檢測結(jié)果圖4-4為運(yùn)用Prewitt邊緣檢測算法檢測出來的邊緣圖像。圖4-5Log邊緣檢測結(jié)果圖圖4-5為運(yùn)用Log邊緣檢測算法檢測出來的邊緣圖像圖4-6Canny邊緣檢測結(jié)果圖圖4-6為運(yùn)用Canny邊緣檢測算法檢測出來的邊緣圖像圖4-7小波邊緣檢測結(jié)果圖圖4-7為運(yùn)用小波邊緣檢測算法檢測出來的邊緣圖像4.3本章小結(jié)通過Matlab/Gui開發(fā)工具的使用,Matlab仿真結(jié)果以明了生動(dòng)的形式躍然于紙上,以一種新的面孔展示靜態(tài)或動(dòng)態(tài)的仿真結(jié)果,能夠進(jìn)一步提高對算法或數(shù)據(jù)處理效果的認(rèn)識(shí)。對于某些頻繁使用的數(shù)據(jù)處理工作,Gui界面無疑是一種高效的替代工具。無論是演示驗(yàn)證還是外場實(shí)時(shí)的數(shù)據(jù)處理,Matlab/Gui都會(huì)發(fā)揮令人滿意的效果。第五章結(jié)論第五章結(jié)論第五章結(jié)論5.1畢業(yè)設(shè)計(jì)總結(jié)通過這一次的畢業(yè)設(shè)計(jì)經(jīng)歷我更加全面的學(xué)習(xí)了Matlab軟件以及Gui界面的開發(fā),在規(guī)定的時(shí)間里完成了設(shè)計(jì)與論文。在設(shè)計(jì)期間,我查閱了一些書籍更加的感受到知識(shí)面寬廣與專精一項(xiàng)學(xué)科的重要性。在畢業(yè)設(shè)計(jì)期間主要完成了一下幾點(diǎn)。1)確定畢業(yè)設(shè)計(jì)題目之后,和老師溝通尋找一些所需要的書籍。2)閱讀搜集到的文檔,熟悉課題所涉及到的Matlab的相關(guān)問題。3)了解不同的算法,確定使用哪幾種。具體的去做設(shè)計(jì)。4)完成設(shè)計(jì),撰寫畢業(yè)論文以及相關(guān)文檔。5.2課題前景與展望圖像邊緣檢測領(lǐng)域還是需要更加成熟而又簡單方便的算法來擴(kuò)充它們的家族,在圖像邊緣檢測領(lǐng)域有微分方法、基于小波與分形理論的方法、基于形態(tài)學(xué)、基于模糊學(xué)、基于神經(jīng)網(wǎng)絡(luò)和基于遺傳算法等多種檢測手段。它們都不是一種具有絕對優(yōu)勢的方法,有的方法邊緣檢測精度高,但抗噪聲性能較差;有的方法解決了抗噪聲性能差的問題,但檢測精度又不夠。還有一些算法盡管在一定程度上較好地解決了上述兩者的協(xié)調(diào)問題,但算法復(fù)雜,實(shí)現(xiàn)困難,運(yùn)算時(shí)間長??梢?,無論哪一種邊緣檢測算法在解決一定問題的同時(shí),都存在不同類型的缺陷。實(shí)質(zhì)上邊緣檢測作為視覺的初級(jí)階段,通常認(rèn)為是一個(gè)非良態(tài)問題,很難從根本上解決。因而,尋求算法較簡單、能較好解決邊緣檢測精度與抗噪聲性能協(xié)調(diào)問題的邊緣檢測算法,將一直是圖像處理與分析中研究的主要問題之一,還有許多工作需要進(jìn)一步研究。致謝第五章致謝在本論文成稿之際,向所有關(guān)心、支持和幫助過我的老師、同學(xué)、和朋友們致以衷心的感謝。首先感謝老師的指導(dǎo),整個(gè)設(shè)計(jì)是在韓老師的悉心指導(dǎo)下完成的,從文獻(xiàn)資料的收集,到具體研究工作的開展與深入、論文的撰寫,都傾注了韓老師的心血。在這段時(shí)間里,我不僅學(xué)到了許多的專業(yè)知識(shí),更感受到了老師工作中的兢兢業(yè)業(yè),生活中的平易近人。此外,老師嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度和忘我的工作精神值得我去學(xué)習(xí)。然后要感謝大學(xué)四年里所有教過我的老師們,在老師們的悉心教導(dǎo)和嚴(yán)格要求下,我的知識(shí)不斷的積累豐富。感謝我的家人對我學(xué)業(yè)上的支持和鼓勵(lì),感謝所有關(guān)心幫助過我的人。同時(shí)感謝大學(xué),感謝石河子大學(xué)信息科學(xué)與技術(shù)學(xué)院四年來對我的培養(yǎng)。由于時(shí)間的緊迫和技術(shù)水平的有限,論文中肯定有些不盡人意之處,誠摯接受各位老師和同學(xué)的批評、指正。致謝參考文獻(xiàn)參考文獻(xiàn) [1]章毓晉,《圖像處理和分析》[M].清華大學(xué)出版社.1999[2]Kenneth.R.Castleman,《數(shù)字圖像處理技術(shù)》[M].北京電子工業(yè)出版社.1998[3]侯小麗.《圖像邊緣檢測技術(shù)發(fā)展綜述》[M].山西.碩士論文[4]沈潔,杜宇人,高浩軍.《圖像邊緣檢測技術(shù)研究》[D].碩士論文.2005[5]張偉偉,劉學(xué)鋒.《基于數(shù)學(xué)形態(tài)學(xué)的圖像邊緣檢測研究》[J].計(jì)算機(jī)與數(shù)字工程.2006[6]周德龍,潘泉.《圖像模糊邊緣檢測的改進(jìn)算法》[J].中國圖像圖形學(xué)報(bào).2001于廣州[7]HYPERLINK"/paper.aspx?f=detail&q=%e4

溫馨提示

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

評論

0/150

提交評論