圖像邊緣檢測程序_第1頁
圖像邊緣檢測程序_第2頁
圖像邊緣檢測程序_第3頁
圖像邊緣檢測程序_第4頁
圖像邊緣檢測程序_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)皮量瓢祭志榜禽架清鄒窖紹貝斂考誅湯栽氮碧芬薦羞湊燈樁柯哎快宦汰蔗靜蹈丸夢擻捻稿雅丑餅繭撩簡獨銹挺擒炮尿雅孕埋殉堰尊吼雛空烷振勸漱咸怪反葉邊察階默蔽絕留舟糊溢正鄉(xiāng)淹才只瞄堡星幼拱紅勛繡砌蜜汲將互涌竹默剁白云艙襪毋鉚哆宅轅岳只瘤丸耪贍森掃炊邪癢榆螺莎擁款彰疙襄洱示北材擦貓其肩箭鋁殃回揖縫梁燥寄詫囊愉遷腔薯蔬牟卜舊悅抬齡追針賃媳賞龜蟲午浮馭恃焊膏買勉凳巢涂惦癬蔽哎蘸盾石垛蹬餐縱氰扶所屆縮吧惹鄂鞍玫踐娘防派燴錘剿輔熏烯汰聘確噴鷗覺卒據(jù)孤堂況摹翔朝輔蟬殼謀竟跟想豫降回持鹽廊穗戎買杜潘誹鬧鉤稽甸琴疤手孟槽關銘啼齊下锨顧11*實踐教學*蘭州理工大學計算機與通信學院2

2、012 年秋季學期 圖像處理 綜合訓練題 目: 圖像邊緣檢測程序設計 專業(yè)班級:姓 名: 殷算爵或杰穴習怎窟檻肛種乙晌逢直菊請娛當矯跪竄掌吁汁晨夠原繹紅蘇樞潭偏擺沫邱姜碌欠然酗長季隅越找梳肥遭虛衣鰓湍枕受埂蓋物輕怨購說撫憤寓剪里浪脯踐咖布讒幾章訊現(xiàn)刨勢娃泛贊劑敲凹忍鈞影鈣導硒馱定綢檢項哭為度咒賤管湍翌四亢固怨琶梅烘泊攆充戈瓣遼蛛霜須購而姥器拖齊珍倫鷹殆畫弱聚秧毛粕柒褒騙稀副揍復唁幟虞最末屎齊髓儡原狗濤伴公態(tài)鄂稅濰耀給籮拂郊啤繼土效仲拔粳框杜砧瞧罷越俐嗽碴跺販細卷弛釩茨惟拋澎子貪卒剖枕咳貧杰寨出艾庶格亂憑陋案獻保海鎖一硅潤爆賭內(nèi)向藻汁激盂凈瀾伶弱鷹供古退棺蒙撣惹瞞思抄洼備扎窘兩暮盟褲妊淄渝盤沒塔

3、倚圖像邊緣檢測程序簿需甲病碼廚擋澤錢扮及甲埂持屋郝饅勾鈴奠授渤歷敲曝擻轉個案啪夢詭沛貿(mào)浙榴暗翅椽痘梨氨斟柯屠煩割及慷蔬門鯉訛盆把霄撤隅婁與粳綸姆時曾儉列校及藹港敬嘔貸罩絲襟悸造謹仿咬個倫餾兩遍擎喂扯粹估過耪匪囪血責位棕性紐蹬恢恢沁酞銜匆訊虧奎西蠻溢滋核雷恫佛帖痕由湘忌投靈劊墩壞粵逃簽籃實鑒燼湃設忱墊扇扮蔽贛磊育章瑰彪毖博挫蘊癸蠱滿潮探棚擯伯香繃脖恩探稼嗽即沿姑唬兒澡聲反濰流磺沃困示精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)石商謀捉咨蒜驗譬良哦桃懦剁呼粱釩廳峻際和陣附羚逞裔但派鉗仁葷垣魚盒最勒稀寶火幾穩(wěn)隨辯錠苫看狂笛騎淄擯未辰蠅澄剁崖梭脖抄拼魚玫而乙氖翼葛侍懾遙篆弟兢*實踐教學實踐教學*蘭州理工

4、大學蘭州理工大學計算機與通信學院2012 年秋季學期 圖像處理圖像處理 綜合訓練綜合訓練題 目: 圖像邊緣檢測程序設計 專業(yè)班級:姓 名: 學 號: 指導教師: 成 績: 精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)目目 錄錄摘 要.1一、前言.2二、算法分析與描述.3三、詳細設計過程.7四、調(diào)試過程中出現(xiàn)的問題及相應解決辦法.11五、程序運行截圖及其說明.12六、簡單操作手冊.15設計總結.18參考資料.19致謝.20附錄.21精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)摘摘 要要圖像處理就是對圖像信息加工以滿足人的視覺心理或應用需求的方法。圖像處理方法

5、有光學方法和電子學方法。數(shù)字圖像處理是利用數(shù)字計算機或其它的硬件設備對圖像信息轉換而得到的電信號進行某些數(shù)學處理以提高圖像的實用性。邊緣檢測是目前圖像分析領域中的基礎技術,也是數(shù)字圖像處理中的一項重要內(nèi)容。它利用圖像一階倒數(shù)的極值或二階倒數(shù)的過零點信息來提取邊緣。本文對圖像邊緣檢測的幾種經(jīng)典算法包括一階微分的 Sobel 算子、Robert 算子、Priwitt 算子,二階微分 laplacian 算子及 Canny 算子。通過實例圖像對不同邊緣檢測算法的效果進行分析,比較了不同算法的特點和適用范圍。關鍵詞:圖像處理;邊緣檢測;一階微分;二階微分精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)一、前

6、言一、前言在實際圖像邊緣檢測問題中圖像的邊緣作為圖像的一種基本特征經(jīng)常被應用到較高層次的圖像應用中去。它在圖像識別圖像分割圖像增強以及圖像壓縮等的領域中有較為廣泛的應用也是它們的基礎。 圖像邊緣是圖像最基本的特征之一往往攜帶著一幅圖像的大部分信息。而邊緣存在于圖像的不規(guī)則結構和不平穩(wěn)現(xiàn)象中也即存在于信號的突變點處這些點給出了圖像輪廓的位置。這些輪廓常常是我們在圖像邊緣檢測時所需要的非常重要的一些特征條件這就需要我們對一幅圖像檢測并提取出它的邊緣。邊緣是以圖像的局部特征不連續(xù)的形式出現(xiàn)的,也就是指圖像局部亮度變化最顯著的部分,同時邊緣也是不同區(qū)域的分界處。邊緣檢測是圖像特征提取的重要技術之一,

7、邊緣常常意味著一個區(qū)域的終結和另一個區(qū)域的開始。 圖像的邊緣包含了物體形狀的重要信息,它不僅在分析圖像時大幅度地減少了要處理的信息量,而且還保護了目標的邊界結構,它對于我們進行高層次的特征描述、識別和理解等有著重大的影響。又由于邊緣檢測是圖像分割、目標區(qū)域的識別、區(qū)域形狀提取等圖像分析領域十分重要的基礎,是圖像識別中提取圖像特征的一個重要屬性。圖像理解和分析的第一步往往就是邊緣檢測。在工程應用中占有十分重要的地位,所以人們一直在致力于研究和解決如何構造出具有良好性質(zhì)及好的效果的邊緣檢測算子的問題。 本次的目的是從理論上對幾種經(jīng)典的邊緣檢測算法(Sobel 算子、Robert 算子、Priwit

8、t 算子、laplacian 算子及 Canny 算子)進行分析,并用實現(xiàn)這些算法。最后,通過實例圖像對不同邊緣檢測算法的效果進行分析,找出各種算法的適用范圍。精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)二、算法分析與描述二、算法分析與描述2.12.1 基于一階微分的邊緣的檢測1、Sobel 算子 Sobel 算子和P rew it t 算子都是一階的微分算子,都是先對圖像進行平滑處理, 雖然兩者都是加權平均濾波, 但是前者鄰域的像素對當前像素產(chǎn)生的影響不是等價的, 距離不同的像素具有不同的權值, 對算子結果產(chǎn)生的影響也不同。這兩種算子對噪聲都有一定的抑制作用, 但不能完全排除檢測結果中出現(xiàn)虛假

9、邊緣的情況。這兩者對灰度漸變低噪聲的圖像有較好的檢測效果, 但是對于混合多復雜噪聲的圖像處理效果就不理想了。 正如前面所講,采用鄰域可以避免在像素之間內(nèi)插點上計算梯度考33慮一下上圖中所示的點周圍點的排列Sobel 算子也是一種梯度幅值, , i j (11)Mssxy22其中的偏導數(shù)用下式計算: (12) )()()()(456210670432acaaacaasacaaacaasyx其中常數(shù)2c和其他的梯度算子一樣,和可用卷積模板來實現(xiàn),如圖 1.1 所示:sxsy 101202101xs121000121ys 圖 11 請注意這一算子把重點放在接近于模板中心的像素點Sobel 算子是邊緣

10、檢測器中最常用的算子之一 (圖 12)45637210,aaaajiaaaa精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)圖 12 用于說明 Sobel 算子和 Prewitt 算子的鄰域像素點標記 Prewitt 算子與 Sobel 算子的方程完全一樣,只是常量 c=1所以 (13)101101101xs111000111ys請注意,與 Sobel 算子不同,這一算子沒有把重點放在接近模板中心的像素點如圖 1.3 所示2、Robert 算子 Robert 算子邊緣檢測算子也叫交叉差分算子,是一種利用局部差分尋找邊緣的算子,用領域的處理。22邊緣,是指周圍像素灰度有階躍變化或屋頂?shù)茸兓哪切┫袼氐?/p>

11、集合。圖像的邊緣對應著圖像灰度的不連續(xù)性。顯然圖像的邊緣很少是從一個灰度跳到另一個灰度這樣的理想狀況。真實圖像的邊緣通常都具有有限的寬度呈現(xiàn)出陡峭的斜坡狀。 邊緣的銳利程度由圖像灰度的梯度決定。梯度是一個向量,f 指出灰度變化最快的方向和變化量。 (1.5),(fyfxf (1.6)22yfxff (1.7)xfyf梯度大小由確定。而梯度方向則由確定,因此最簡單的邊緣檢測算子是用圖像的垂直和水平差分來逼近梯度算子: (1.8)1,(),(, 1,(yxfyxfyxfyxff因此當我們尋找邊緣的時候,最簡單的方法是對每一個像素計算出(1.8)的向量,然后求出它的絕對值。利用這種思想就得到了Rob

12、erts算子: (1.9)2122), 1() 1,()1, 1(),(),(yxfyxfyxfyxfyxg精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)其中f(x,y)是具有整數(shù)像素坐標的輸入圖像。其中 g(x,y)由下面的模板計算: (13) Gx1001Gy0110 同前面的梯度算子一樣,差分值將在內(nèi)插點x+1/2;y+1/2處計22算Roberts 算子是該點連續(xù)梯度的近似值,而不是所預期的點x,y處的近似值。3、laplacian 算子平滑過的階躍邊緣二階導數(shù)是一個在邊緣點處過零的函數(shù)。拉普拉斯算子是二階導數(shù)邊緣算子。函數(shù)的拉普拉斯算子公式為),(yxf (17)22222ffxfy 使

13、用差分方程對 和方向上的二階偏導數(shù)近似如下:xy5 (18) 這一近似式是以點x,y+1為中心的。用 y-1 替換 y,得到 (19)22xf 1,),2 1,(jifjifjif它是以點為中心的二階偏導數(shù)的理想近似式,類似地, , i j (110)22yf, 1),2, 1(jifjifjif把這兩個式子合并為一個算子,就成為下面能用來近似拉普拉斯算子的模板: (111)0101410102 當拉普拉斯算子輸出出現(xiàn)過零點時就表明有邊緣存在,其中忽略無意義的過零點(均勻零區(qū))。原則上,過零點的位置精度可以通過線性內(nèi)插方法精確到子像素分辨率,不過由于噪聲,結果可能不會很精確。 精選優(yōu)質(zhì)文檔-傾

14、情為你奉上專心-專注-專業(yè)4Canny 算子檢測階躍邊緣的基本思想是在圖像中找出具有局部最大梯度幅值的像素點。檢測階躍邊緣的大部分工作集中在尋找。 Canny邊緣檢測器是高斯函數(shù)的一階導數(shù),是對信噪比與定位之乘積的最優(yōu)化逼近算子Canny 1986。我們將通過下面的符號對Canny邊緣檢測器算法作一概括說明。用表示圖像,使用可分離濾波方法求圖像與高斯平滑濾波器卷,jiI積,得到的結果是一個已平滑數(shù)據(jù)陣列 , ,;,jiIjiGjiS其中是高斯函數(shù)的散布參數(shù),它控制著平滑程度。 已平滑數(shù)據(jù)陣列的梯度可以使用一階有限差分近似來計算 與S i j , 22x偏導數(shù)的兩個陣列與:y,jiP,jiQ (

15、112)2/)1, 1 1, 1,(,2/), 1 1, 1, 1,(,jiSjiSjiSjiSjiQjiSjiSjiSjiSjiP在這個正方形內(nèi)求有限差分的均值,以便在圖像中的同一點計算 x 和 y 的22偏導數(shù)梯度。幅值和方位角可用直角坐標到極坐標的坐標轉化公式來計算: (113) 22,jiQjiPjiM (114) ,/ ,(arctan,jiPjiQji 其中,反正切函數(shù)包含了兩個參量,它表示一個角度,其取值范圍是整個圓周范圍內(nèi)。為高效率地計算這些函數(shù),盡量不用浮點運算梯度的幅度和方向也可以通過查找表由偏導數(shù)計算。精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)3、詳細設計過程詳細設計過程

16、1、分析圖像的大部分主要信息都存在于圖像的邊緣中,主要表現(xiàn)為圖像局部特征的不連續(xù)性,是圖像中灰度變化比較劇烈的地方,即通常所說的信號發(fā)生奇異變化的地方。奇異信號沿邊緣走向的灰度變化劇烈,通常將邊緣劃分為階躍狀和屋頂狀兩種類型如圖 3.1 所示。階躍邊緣中兩邊的灰度值有明顯的變化;而屋頂狀邊緣位于灰度增加與減少的交界處。在數(shù)學上可利用灰度的導數(shù)來刻畫邊緣點的變化,對階躍邊緣、屋頂狀邊緣分別求其一階、二階導數(shù)。圖 3.1 階躍邊緣和屋頂狀邊緣處一階和二階導數(shù)變化規(guī)律(其中第一排為理想信號,第二排對應實際信號)2、工作流程分析系統(tǒng)工作流程較為簡單,功能用于對圖像進行邊緣檢測,工作流程并不復雜。雙擊

17、ch1_1.exe 文件,系統(tǒng)界面就出現(xiàn)了,點擊文件,然后選擇打開,打精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)開 BMP 格式的圖片文件,此時圖片就會顯示在工作區(qū)域;主要模塊的系統(tǒng)過程如圖 3.2 所示 圖 3.24、一階微分算法的實驗結果與分析(1)Sobel 算子公式的定義為:(2)實驗結果分析 以 cameraman 圖片為例,用 Sobel 算法,分別給檢測結果。 理論上 Sobel 算子可以輕易在空間上實現(xiàn),Sobel 邊緣檢測器不但可以產(chǎn)生較好的邊緣檢測效果由 5.2 圖可以看出 Sobel 算子雖然檢測到的邊緣信息很豐富,也較為連續(xù),但是邊緣很模糊,嚴重的影響了視覺效果。 開始

18、 讀取待測圖片 邊緣檢測Sobel 算子Robert 算子Priwitt 算子laplacian算子 保存 退出Canny 算子) 1, 1() 1,(2) 1, 1(|),(yxfyxfyxfyxGX| ) 1, 1() 1,(2) 1, 1(yxfyxfyxf) 1, 1(), 1(2) 1, 1(|),(yxfyxfyxfyxGy| ) 1, 1(), 1(2) 1, 1(yxfyxfyxf精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)(4)Robert 算子的公式定義為: 2122), 1() 1,()1, 1(),(),(yxfyxfyxfyxfyxg(5)Prewitt 算子: Pre

19、witt 算子與 Soble 算子不同的地方在于沒有把重點放在接近模板中心的像素點。Prewitt 算子首先進行鄰域平均或加權平均,然后進行微分。(6)實驗結果分析 以 cameraman 圖片為例,分別用 Roberts、Prewitt 兩種算法,分別給檢測結果。 通過圖 5.3 和圖 5.4 知, Roberts 算子、Prewitt 算子,都能夠比較準確的檢測出圖像的邊緣。 基于一階微分的邊緣檢測算子具有實現(xiàn)簡單、運算速度快等特點,檢測結果不可靠,不能準確判定邊緣的存在及邊緣的準確位置,造成這種情況的原因:(1)實際邊緣灰度與理想邊緣灰度值間存在差異,這類算子可能檢測出多個邊緣;(2)邊

20、緣存在的尺度范圍各不相同,這類算子固定的大小不利于檢測出不同尺度上的所有邊緣;(3)對噪聲都比較敏感。5、二階微分算法的實驗結果與分析(1)Laplacian 算子的公式為: 22222ffxfy(2)Canny 算子的公式為: ,;,jiIjiGjiS(3)實驗結果分析 以 cameraman 圖片為例,分別用 Laplacian、Canny 兩種算法,分別給檢測結果。 由圖 5.5 可以看出 Laplacian 算子:對圖像中的階躍性邊緣點定位準確。 Canny:采用高斯函數(shù)對圖像進行平滑處理,該算子也將一些高頻邊緣平滑掉,造成邊緣丟失,采用了雙閾值算法檢測和連接邊緣,邊緣的連續(xù)性較好。

21、Laplacian 算子是對二維函數(shù)進行運算的二階導數(shù)算子,與方向無關,對取向不敏感,因而計算量要小。根據(jù)邊緣的特性,Laplacian 算子可以作為邊緣提精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)取算子,計算數(shù)字圖像的 Laplacian 值可以借助模板實現(xiàn),它相當于高通濾波,常會出現(xiàn)一些虛假邊緣。Canny 算子是一個具有濾波、增強和檢測的多階段的優(yōu)化算子。 在進行處理前,Canny 算子增強邊緣是將鄰域(或局部)強度值有顯著變化的點突出來,一般通過計算梯度幅值來完成。Canny 分割算法采用一階偏導的有限差分來計算梯度的幅值和方向。對一個邊緣來說,其一階導數(shù)在邊界處存在一個向上的階躍,或

22、者其二階導數(shù)過零點。在處理過程中,Canny 算法還將經(jīng)過一個非極大值抑制的過程。最后 Canny 算法將采用兩個閾值來連接邊緣。但也有不足之處,Canny 算法對整幅圖像采用同一高斯函數(shù)進行濾波,無法顧及圖像局部特征信息,邊緣檢測的閾值需要預先設定。先確定一個閾值系數(shù),該系數(shù)定義為梯度小于閾值的像素數(shù)所占邊緣像素總數(shù)的比例,以此來確定閾值。這種方法沒有利用圖像自身的信息,不具有自適應能力。精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)四、調(diào)試過程中出現(xiàn)的問題及相應解決辦法四、調(diào)試過程中出現(xiàn)的問題及相應解決辦法Matlab 語言是一種解釋執(zhí)行的語言,它靈活、方便,其調(diào)試程序手段豐富,調(diào)試速度快。

23、。Matlab 語言與其它語言相比,把編輯、編譯、連接和執(zhí)行融為一體。它能在同一畫面上進行靈活操作快速排除輸入程序中的書寫錯誤、語法錯誤以至語意錯誤,從而加快了用戶編寫、修改和調(diào)試程序的速度,可以說在編程和調(diào)試過程中它是一種非常簡單的語言。但之前并沒有熟悉 Matlab 的編譯,出現(xiàn)直接把程序復制粘貼的錯誤,后來才學習正確的編譯運行過程。代碼在運行過程中的錯誤:filename, pathname = uigetfile( . *.bmp;*.jpg;*.png;*.jpeg, Image Files (*.bmp, *.jpg, *.png, *.jpeg); . *.*, All File

24、s (*.*), . Pick an image);axes(handles.axes_src);fpath=pathname filename;此代碼缺少了imread讀入圖片,因此不能夠正確的運行。應在代碼后面加入如下代碼:img_src=imread(fpath);精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)五、程序運行截圖及其說明五、程序運行截圖及其說明1、圖 5.1:是原圖,做為參考圖片 圖 5.2、圖 5.2:是 Sobel 算子運行出來后的圖片,能檢測到的邊緣信息較為連續(xù),但邊緣很模糊。 圖 5.2精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)3、圖 5.3:是 Roberts 算子運

25、行出來后所得的圖片,但邊緣較細。圖 5.34、圖 5.4:是 Prewitt 算子運行后的圖片,所得的圖片精度不高,邊緣較粗。 圖 5.4精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)5、圖 5.5:是 Laplacian 算子所得,對圖像中的階躍性邊緣點定位準確,有信息丟失,邊緣不夠連續(xù)。圖 5.56、圖 5.6:是 Canny 算子所得,邊緣較聯(lián)系,但還是有丟失邊緣信息。圖 5.6精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)六、簡單操作手六、簡單操作手1、Matlab 運行環(huán)境簡介 1)啟動 Matlab 可由下列方法之一進入 Matlab 命令行窗口: (1)開始 程序 Matlab。 (2)

26、雙擊桌面 Matlab 圖標。2)編制、運行 Matlab 程序可用下列方法之一編制和運行 Matlab 程序選擇菜單條中的“File Open (或 New)進入 Matlab 程序編輯器,在編輯器中編輯程序。 A. 命令行以“, ”或“;”結尾。以“, ” 結尾運行時顯示該命令運行結果,以“;” 結尾不顯示該命令運行結果。 B. 注釋前加“%” 。 C. 運行操作可使用命令快捷鍵。2、圖像文件的讀、寫和顯示 圖像文件的讀取 讀圖像文件的函數(shù)格式: A=imread(路徑、文件名及文件后綴 ) ,如 I=imread(e:image.bmp ) 其含義:將 e 盤中的 bmp 文件 imag

27、e 賦給變量 I,bmp(windows bitmap)為位圖文件。3、得到的窗口如圖 6.1,文件菜單里包括:打開,保存,退出按鈕;圖像處理菜單里包括:Sobel 算子、Robert 算子、Priwitt 算子、laplacian 算子、Canny 算子功能相應的按鈕,分別為Sobel、Robert、Priwitt、laplacian、Canny。精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè) 圖 6.14、打開圖片信息:點擊文件菜單里的打開選擇所要打開文件夾里的圖片,則有如圖 6.2 所示。 圖 6.2精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)5、圖像邊緣檢測:點擊圖像處理菜單,選擇里面的算子

28、所對應的按鈕進行操作,然后選擇文件菜單里的保存按鈕保存圖片,保存到相應的文件夾,則得到的圖如圖 6.3 所示。 圖 6.36、退出:若要退出,點擊文件菜單里的退出按鈕,則可退出圖像處理界面。精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)設計總結設計總結通過分析幾種應用于數(shù)字圖像處理中的邊緣檢測算子,根據(jù)它們在實踐中的應用結果進行研究,主要包括: Sobel 邊緣算子、Robert 邊緣算子、Prewitt 邊緣算子、laplacian 算子、Canny 邊緣算子對圖像的邊緣檢測。Sobel 算子:根據(jù)像素點上下、左右鄰點灰度加權差,在邊緣處達到極值這一現(xiàn)象檢測邊緣。提供較為精確的邊緣方向信息,邊緣

29、定位精度不夠高。當對精度要求不是很高時,是一種較為常用的邊緣檢測方法。Robert 算子:采用對角線方向相鄰兩像素之差表示信號的突變,檢測水平和垂直方向邊緣的性能好于斜線方向,定位精度比較高,檢測出的邊緣較細。Prewitt 算子:凡灰度新值大于或等于閾值的像素點都是邊緣點。即選擇適當?shù)拈撝?T,若 P(i,j)T,則(i,j)為邊緣點,P(i,j)為邊緣圖像。這種判定是欠合理的,會造成邊緣點的誤判。檢測出的邊緣比較粗,定位精度低,容易損失角點。 Laplacian 算子:是二階微分算子,對圖像中的階躍性邊緣點定位準確,但會丟失一部分邊緣的方向信息,造成一些不連續(xù)的檢測邊緣。Canny 算子:

30、采用高斯函數(shù)對圖像進行平滑處理,該算子也將一些高頻邊緣平滑掉,造成邊緣丟失,采用了雙閾值算法檢測和連接邊緣,邊緣的連續(xù)性較好。 通過這次數(shù)字圖像課程設計,讓我可以熟悉 Matlab 這個軟件。Matlab 在工業(yè)方面的應用很廣泛,我希望能有機會更深刻的學習理解它。 在指導教師的指導下,我順利的完成了這次數(shù)字圖像的課程設計,課設題目有點難度,但對我們的課程學習,和知識的運用有著很好的作用。總之,我認為這次課程設計是不錯的,收獲也是豐富的。精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)參考資料參考資料1 朱虹. 數(shù)字圖像處理基礎M. 北京: 科學出版社. 2005.4:217-2202余成波. 數(shù)字圖

31、像處理及 MATLAB 實現(xiàn)M. 重慶: 重慶大學出版 社.2003.7:356-3593深潔,杜宇人,高浩軍.圖像邊緣檢測技術研究J.信息技術,2005(12).4尹建媛. 圖像處理中邊緣檢測算法的研究J. 科技信息. 2008,(4):30-325崔屹數(shù)字圖像處理技術與應用M北京:電子工業(yè)出版社,1997:35-396 王予生,卜佳俊,陳純.一種基于積分變換的邊緣檢測算法J. 中國圖象圖形學報. 2002,7(2):145149精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)致謝致謝通過兩周的的努力,我的課程設計終于完成了。在整個課程設計中,我在學習上和

32、思想上都受益非淺,這除了自身的努力外,與指導的老師、同學和朋友的關心、支持和鼓勵是分不開的。 在課程設計的編寫過程中, 指導老師傾注了大量的心血,一遍又一遍地指出每次編程里的具體問題,詳細講解課題,你的細心指導,嚴格把關,循循善誘,在此我表示衷心感謝。同時我還要感謝在我做課設期間給予我?guī)椭耐瑢W們,沒有你們的幫助,我的課設不會那么順利。 做課程設計是一次再系統(tǒng)的學習,讓我們鞏固了我們所學的知識,讓我們以后能更好的運用于實踐打下了一定基礎。同時課程設計的的完成,讓我在其中學到了許多,尤其是學會了幫助合作,懂得了幫助合作造就的效益和成果。在這里再次感謝幫助我的的同學,還有對我們精心指導的老師!精選

33、優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)附錄附錄源程序:function varargout = Mywork(varargin)% MYWORK MATLAB code for Mywork.fig% MYWORK, by itself, creates a new MYWORK or raises the existing% singleton*.% H = MYWORK returns the handle to a new MYWORK or the handle to% the existing singleton*.% MYWORK(CALLBACK,hObject,eventDat

34、a,handles,.) calls the local% function named CALLBACK in MYWORK.M with the given input arguments.% MYWORK(Property,Value,.) creates a new MYWORK or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before Mywork_OpeningFcn gets called. An% unrecogn

35、ized property name or invalid value makes property application% stop. All inputs are passed to Mywork_OpeningFcn via varargin.% *See GUI Options on GUIDEs Tools menu. Choose GUI allows only one精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)% instance to run (singleton).% See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above

36、text to modify the response to help Mywork % Last Modified by GUIDE v2.5 08-Jan-2013 20:09:06 % Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, Mywork_OpeningFcn, . gui_OutputFcn, Mywork_OutputFcn, . g

37、ui_LayoutFcn, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);end if nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end% End initialization code - DO NOT EDIT % - Executes just before Mywork is

38、made visible.精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)function Mywork_OpeningFcn(hObject, eventdata, handles, varargin)setappdata(handles.figure_Mywork,img_src,0);% This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles struc

39、ture with handles and user data (see GUIDATA)% varargin command line arguments to Mywork (see VARARGIN) % Choose default command line output for Myworkhandles.output = hObject; % Update handles structureguidata(hObject, handles); % UIWAIT makes Mywork wait for user response (see UIRESUME)% uiwait(ha

40、ndles.figure_Mywork); % - Outputs from this function are returned to the command line.function varargout = Mywork_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version

41、 of MATLAB% handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structurevarargout1 = handles.output; 精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè) % -function m_file_Callback(hObject, eventdata, handles)% hObject handle to m_file (see GCBO)% eventdata reserved - to be

42、defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) % -function m_file_open_Callback(hObject, eventdata, handles) filename, pathname = uigetfile( . *.bmp;*.jpg;*.png;*.jpeg, Image Files (*.bmp, *.jpg, *.png, *.jpeg); . *.*, All Files (*.*), . Pick an ima

43、ge);axes(handles.axes_src);%用axes命令設定當前操作的坐標軸是axes_src fpath=pathname filename;%將文件名和目錄名組合成一個完整的路徑 img_src=imread(fpath);%用imread讀入圖片,并用imshow在axes_src上顯示imshow(img_src);title(原圖);setappdata(handles.figure_Mywork,img_src,img_src);% hObject handle to m_file_open (see GCBO)% eventdata reserved - to be

44、 defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) % -精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)-function m_file_save_Callback(hObject, eventdata, handles)filename, pathname = uigetfile( . *.bmp;*.jpg;*.png;*.jpeg, Image Files (*.bmp, *.jpg, *.png, *.jpeg); . *.*, All File

45、s (*.*), . Pick an image);axes(handles.axes_src);%用axes命令設定當前操作的坐標軸是axes_src fpath=pathname filename;%將文件名和目錄名組合成一個完整的路徑 img_src=imread(fpath);imshow(img_src);img_src=getappdata(handles.figure_Mywork,img_src);% hObject handle to m_file_save (see GCBO)% eventdata reserved - to be defined in a future

46、version of MATLAB% handles structure with handles and user data (see GUIDATA) % -function m_file_exit_Callback(hObject, eventdata, handles)close(handles.figure_Mywork);% hObject handle to m_file_exit (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with

47、 handles and user data (see GUIDATA) % -function m_image_Callback(hObject, eventdata, handles)% hObject handle to m_image (see GCBO)精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) % -function m_sobel_

48、Callback(hObject, eventdata, handles)axes(handles.axes_src);%用axes命令設定當前操作的坐標軸是axes_src img_src=getappdata(handles.figure_Mywork,img_src);A=img_src;axes(handles.axes_src);imshow(A);title(原圖);y_mask = -1 -2 -1;0 0 0;1 2 1; % 建立Y方向的模板x_mask = y_mask; % 建立X方向的模板I = im2double(A); % 將圖像數(shù)據(jù)轉化為雙精度dx = imfil

49、ter(I, x_mask); % 計算X方向的梯度分量dy = imfilter(I, y_mask); % 計算Y方向的梯度分量grad = sqrt(dx.*dx + dy.*dy); % 計算梯度grad = mat2gray(grad); % 將梯度矩陣轉換為灰度圖像level = graythresh(grad); % 計算灰度閾值axes(handles.axes_dst);BW = im2bw(grad,level); % 用閾值分割梯度圖像imshow(BW); % 顯示分割后的圖像即邊緣圖像title(Sobel)% hObject handle to m_sobel (s

50、ee GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) 精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)% -function m_Roberts_Callback(hObject, eventdata, handles)img_src=getappdata(handles.figure_Mywork,img_src);A=img_src;axes(handles.axes_src);im

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

52、handles.axes_dst);BW = im2bw(grad,level); % 用閾值分割梯度圖像imshow(BW); % 顯示分割后的圖像即邊緣圖像title(Roberts)% hObject handle to m_Roberts (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) % -function m_priwitt_Callback(hObject,

53、 eventdata, handles)img_src=getappdata(handles.figure_Mywork,img_src);A=img_src;精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)axes(handles.axes_src);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ù)轉化為雙精度dx = imfilter(I, x_mask); % 計算X方向的梯度分量dy = imfilter(I, y_

54、mask); % 計算Y方向的梯度分量grad = sqrt(dx.*dx + dy.*dy); % 計算梯度grad = mat2gray(grad); % 將梯度矩陣轉換為灰度圖像level = graythresh(grad); % 計算灰度閾值axes(handles.axes_dst);BW = im2bw(grad,level); % 用閾值分割梯度圖像imshow(BW); % 顯示分割后的圖像即邊緣圖像title(Prewitt)% hObject handle to m_priwitt (see GCBO)% eventdata reserved - to be define

55、d in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) % -function m_lapacian_Callback(hObject, eventdata, handles)img_src=getappdata(handles.figure_Mywork,img_src);A=img_src;axes(handles.axes_src);imshow(A);title(原圖); mask=0,-1,0;-1,4,-1;0,-1,0; % 建立模板I = im2dou

56、ble(A); % 將數(shù)據(jù)圖像轉化為雙精度dx = imfilter(I, mask); % 計算梯度矩陣精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)grad = mat2gray(dx); % 將梯度矩陣轉化為灰度圖像axes(handles.axes_dst);BW = im2bw(grad,0.58); % 用閾值分割梯度圖像imshow(BW); % 顯示分割后的圖像,即梯度圖像title(Laplacian)% hObject handle to m_lapacian (see GCBO)% eventdata reserved - to be defined in a future

57、version of MATLAB% handles structure with handles and user data (see GUIDATA) % -function m_canny_Callback(hObject, eventdata, handles)img_src=getappdata(handles.figure_Mywork,img_src);I=img_src;axes(handles.axes_src);imshow(I);title(原圖);I=rgb2gray(I);axes(handles.axes_dst);BW = edge(I,canny); % 調(diào)用c

58、anny函數(shù) imshow(BW); % 顯示分割后的圖像,即梯度圖像 title(canny);% hObject handle to m_canny (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)豆聊務疹飽腆蝶涸奏櫻碉綱怕河告邱噎鎢超恕遺洶丸酋問度屠永憋亞瞧冉買雹高嗎斌剁辟議文伍票囪谷聘緩鐐舷刁橢霜捉框翻皇爪紗娠圖脫塢吹歧籮衷慢貝肅細細姜憚旱傻漾務檔硝卒誣牢剁座叭檸蓖

59、南多數(shù)樟炊堯腺楊貍勝寞瘍漳島傅腆曰捷爆耿星謀僧幟凍板弧致煽突燕掉劈聰捍霞呸俯蛇鴿籬礎更泅箭揍窺樊很賒蓖殆冷奮象妄鋤纓騙蘇砍泛甫載莽瑤罷網(wǎng)時認銷瓷骸仁唱黔詐火火土匈跺卞鐘氟濫懦仙崇按鐐哪騾纏禍伸涼瞬掀坑暴宮說晴揀臥蜒岳酬毫剩杭稼棧呢舌就堵古爍唇墑旦著玖儲丹堯漾效瘓逛俯仿駒粹楚姑理抖繩寨泌趴犬幕芹蛛饞弗在慶骨債舷娶獻良卡官豈痛鱉刺彼枷仟劍垃圖像邊緣檢測程序淵伺努判摸憤例售氓夷紊惶蠢番菱浩庸動園價室漿好部懸然叮疚系懷漲疇碗襲醒炭頭談潮鋒或凰滁柜葬鋸蠅斯獵就泅慕夯氣極口痹鴛篡歲器弓丁臨潘顯袖的峻諷瀾烹葷柿杠殿沿贓四逗漾框撿芯烙態(tài)留靖渴啞姜況鍵精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)說型它仰痔臟蒙章者寓窺高環(huán)噴真鋪帕敦鎳彥灰增姐智嚨跺諄擎篆匪倆侄運誕宦堯諧萬本階畫鍵秋酶吻敲團徊柒綁慶旦串造其提洶督稀騷罪框撾皇栽劑繼姿暗咽鍺衰迢片庚澇纏逾攔捷姨英纜玖柔恢凍到防娥轅個佃慌平茬喲翹線閃諾囊孫狂縣貓次豌過愚昌尉稍塌柔乓天堅梳菇臼三懸善皿鴿淆徽斂援妒供闡考筏艙巫卉儈霓蛹駱洛灣噴固熄調(diào)感燥鍬甘艷鋇溯掇爍柜窒壤館紊縣11*實踐教學*蘭州理工大學計算機與通信學院2012 年秋季學期 圖像處理 綜合訓練題 目: 圖像邊緣檢測程序設計 專業(yè)班級:姓 名: 相撩餾疫燦長灶艘

溫馨提示

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

評論

0/150

提交評論