




已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
安徽三聯(lián)學院畢業(yè)論文本科畢業(yè)論文(設計、創(chuàng)作)題 目: 數(shù)字圖像邊緣檢測算法設計與實現(xiàn) 學生姓名: 學號: 0231002045 所在院系: 信息與通信技術系 專業(yè): 電子信息工程 入學時間: 2010 年 9 月 導師姓名: 職稱/學位: 講師/博士 導師所在單位: 完成時間: 2014 年 5 月安徽三聯(lián)學院教務處 制II安徽三聯(lián)學院畢業(yè)論文 數(shù)字圖像邊緣檢測算法設計與實現(xià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)學院畢業(yè)論文設計 目 錄第一章 緒論11.1 課程設計選題的背景及意義11.2 圖像邊緣檢測的發(fā)展現(xiàn)狀1第二章 邊緣檢測有關知識點22.1 邊緣檢測算法的分類22.2 邊緣檢測基本步驟22.3 邊緣檢測算法評價標準3第三章 一些經典的邊緣檢測算子的原理介紹53.1 Roberts邊緣檢測算子53.2 Prewitt算子53.3 Kirsch算子6第四章 圖像邊緣檢測相關程算法和程序74.1 Hough變換74.2輪廓提取94.4輪廓跟蹤14第五章 程序調式仿真185.1 MATLAB簡介18結論19致謝20參考文獻21第一章 緒論我們日常生活和工作中獲取和交換信息的來源主要是圖像,所以圖像處理技術涉及到我們生活的方方面面。數(shù)字圖像處理技術的發(fā)展涉及計算機科學、數(shù)學、信息技術等科學,也因此與邊緣相關的學科對圖像處理技術的發(fā)展有著很大的影響。隨著多年的發(fā)展,圖像處理技術被運用到很多高科技領域1.1 課程設計選題的背景及意義 所謂邊緣,是指圖像中灰度發(fā)生急劇變化的區(qū)域,或者說是指周圍像素灰度有階躍變化或屋頂變化的那些像素的集合1在對圖像處理研究中,圖像、圖形的處理,包括數(shù)字圖像的處理、儲存等是主要的工作。多媒體技術、計算機視覺和計算機模式識別已經逐漸地應用在日常生活中2。一個區(qū)域的終結和另一個區(qū)域的開始就是邊緣,邊緣普遍存在于目標與背景、目標與目標、區(qū)域與區(qū)域、基元與基元之間,圖像分割所依賴的重要特征就是邊緣,紋理特征的重要信息源和形狀特征的基礎是邊緣。有了圖像邊緣,物體的幾何尺寸可以確定基于有了邊緣,并進一步對其測量,物體在空間中的幾何位置可以確定,物體的形狀特征被確定并對物體進行識別。圖像的邊緣信息在圖像分析和計算機視覺中圖像的邊緣信息很重要,圖像識別中提取圖像特征的一個重要屬性是邊緣。即使它在數(shù)字圖像處理中有很重要的作用。1.2 圖像邊緣檢測的發(fā)展現(xiàn)狀 圖像的邊緣檢測有著很長的研究歷史,學術思想非?;钴S,不斷涌現(xiàn)新理論、新方法,一直是國內外圖像處理領域研究的熱點一直是圖像的邊緣檢測,現(xiàn)今許多方法和理論己經被提出。目前為止提出的關于邊緣檢測的方法和理論依然存在不足的地方,在某些具體情況下依然無法很好的檢測出目標物體的邊緣在某些具體情況下。所以,根據(jù)具體的應用要求設計新的邊緣檢測方法根據(jù)具體的應用,或者對現(xiàn)有的方法進行改進以達到滿意的結果,研究的主流方向依然是這些依然是。第二章 邊緣檢測有關知識點2.1 邊緣檢測算法的分類隨著圖像處理技術的發(fā)展和多種學科在數(shù)字圖像處理領域的融合交叉,多種多樣的邊緣檢測算法不斷出現(xiàn)。目前,邊緣檢測方法含有算子法、曲面擬合法、模板匹配法等3,分方法為主的是經典邊緣檢測算法,又可分為一階微分算法和二階微分算法。新邊緣檢測算法有很多種,包含多種學科,有良好的發(fā)展形勢。如分類圖2-1所示:Roberts算法Sobel算法Prewitt算法一階算法Canny算法經典算法邊緣檢測算法Laplace算法LOG算法二階算法數(shù)學形態(tài)法小波變換法新算法神經網絡法模糊檢測法圖2-1 邊緣檢測算法分類2.2 邊緣檢測基本步驟通常邊緣檢測主要包括以下四個步驟4 (如圖2-2所示):(1) 圖像濾波同屬圖像中強度變化劇烈的部位是邊緣和噪聲,所以邊緣檢測算子對邊緣和噪聲都很敏感,為了改善與噪聲有關的邊緣檢測算子的性能所以必須使用濾波器。而邊緣檢測算法主要是基于圖像灰度的一階和二階導數(shù),導數(shù)的計算對噪聲很敏感,而邊緣檢測算法主要是基于圖像灰度的一階和二階導數(shù),為了改善與噪聲有關的邊緣檢測器的性能須用濾波器。(2) 圖形增強確定圖像各點鄰域強度的變化值是增強邊緣的基礎??梢詫⑧徲驈姸戎涤酗@著變化的點突出顯示的算法是增強算法。(3) 圖像檢測圖像中有許多梯度幅值比較大的點,然而這些點并不都是邊緣在一些特定的應用領域中,哪些是邊緣點應用某些方法來確定。梯度幅值閾值判據(jù)是最簡單的邊緣檢測判據(jù)。(4) 圖像定位確定邊緣點的具體位置就是邊緣定位,邊緣細化、連接也應該包括。如果邊緣位置在某一應用場合要求確定,則邊緣的位置可利用子像素分辨率來估計,也可以估計出邊緣的方位。圖2-2 邊緣檢測的流程2.3 邊緣檢測算法評價標準邊緣檢測算法的評價標準的研究,需追溯到其發(fā)展的思想源頭和理論基礎。一般情況下,圖像中的邊緣點可認為是信號中的奇異點和突變點,它相鄰像素灰度分布的梯度反映了其附近灰度的變化情況?;谝陨衔覀兲岢隽硕喾N邊緣檢測算子:如Robert算子、Prewitt算子等。這些方法多灰度分析的基礎是待處理像素為中心的鄰域,對圖像邊緣的提取得以實現(xiàn)并已經取得了較好的處理效果。邊緣像素寬、噪聲干擾較嚴重等缺點也同時存在于這些方法中,即使采用一些輔助的方法去噪,邊緣模糊等難以克服的缺陷也會相應帶來。本質上講,計算局部的微分算子是各種邊緣檢測技術的基本思想。一般圖像的邊緣檢測識別過程中有如下的要求:(1)有效的邊緣能夠正確的檢測出;(2)要有高精度的邊緣定位;(3)檢測的響應最好是單像素的檢測響應;(4)對于不同尺度的邊緣都能有較好的響應且能盡量減少漏檢;(5)對噪聲盡量不敏感;邊緣檢測器的響應可簡略的總結為以下三種誤差:(1)丟失的有效邊緣;(2)邊緣定位誤差(3)將噪聲誤判斷為邊緣。第三章 一些經典的邊緣檢測算子的原理介紹3.1 Roberts邊緣檢測算子利用局部差分算子尋找邊緣的算子就是Roberts算子,Roberts算子在2*2鄰域上計算對角導數(shù): (3.1)又稱為Roberts交叉算子。近似簡化運算: (3.2)用卷積模板,上式變?yōu)椋?(3.3)其中和由圖3.2的模板計算:01-10100-1 (a)對角導數(shù) (b)對角導數(shù)圖3.1 Roberts邊緣檢測算子將在內插點處計算差分值。該點連續(xù)梯度的近似值就是Roberts算子,不是預期點處的近似值。經過用面兩個卷積算子對圖像運算后,代入,可求得圖像的梯度幅度值,再選取適當?shù)拈T限TH,作如下判斷:,為階躍狀邊緣點為一個二值圖像,就得到了圖像的邊緣.。3.2 Prewitt算子Prewitt由22擴大到33來計算差分算子,此算子不僅能檢測邊緣點,這些算子樣板是由理想的邊緣圖像構成的,檢測圖像則是次用邊緣樣板,最大值則是由與被檢測區(qū)域最為相似的樣板給出。算子的輸出值就是用這個的最大值,則邊緣像素就可被檢測出來。Prewitt邊緣檢測算子模板的定義如下:上面8個算子樣板分別對應8個等方向的邊緣方向。然后適當選取門限TH,作此判斷:若P(i,j)TH,那么(i,j)為階躍狀邊緣點。就得到P(i,j)為邊緣圖像。(4)拉普拉斯算子(Laplace)拉普拉斯定義為:(3.4)拉普拉斯也是采用模板計算,有一種經常用的5 5的模板5 3.3 Kirsch算子Kirsch是方向算子。它是用八個卷積核的邊緣檢測算子,一共有八個33卷積核6。各方向上的邊緣均可檢測,選擇其中的最大值輸出, 計算量增加了,并且減少因為平均而造成的細節(jié)丟失。局部邊緣的突出基于邊緣增強算子,通過設置門限的方法提取邊緣點集,像素中的“邊緣強度”就被定義了這是邊緣檢測的基本原理。我們要尋找一些各項同性的檢測算子這是因為邊緣、輪廓在一幅圖像中經常具有任意的方向,們對任意方向的邊緣、輪廓都有一樣的檢測能力7。第四章 圖像邊緣檢測相關程算法和程序4.1 Hough變換Hough變換用來在圖像中查找直線。它的原理很簡單:假設有一條與原點距離為s,方向角為的一條直線,下圖所示。直線上的每一點都滿足方程 (4.1)利用這個事實,我們可以找出某條直線來。舉一個例子,用一段程序找出圖像中最長的直線(紅色直線),我們可將直線顏色加粗。原圖變換的結果找到的最長直線確實是它。下面給出BOOL Hough程序:BOOL Hough(HWND hWnd)/定義一個自己的直線結構 typedef struct int topx; /最高點的x坐標 int topy; /最高點的y坐標 int botx; /最低點的x坐標 int boty; /最低點的y坐標 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;/計算最大距離 Dist=(int)(sqrt(double)bi.biWidth*bi.biWidth+(double)bi.biHeight*bi.biHeight)+0.5); Alpha=180 /2 ; /0 到 to 178 度,步長為2度 /為距離角度數(shù)組分配內存if(hDistAlpha=GlobalAlloc(GHND,(DWORD)Dist*Alpha*sizeof(int)=NULL)MessageBox(hWnd,Error alloc memory!,Error Message,MB_OK|MB_ICONEXCLAMATION);return FALSE; if(hMyLine=GlobalAlloc(GHND,(DWORD)Dist*Alpha*sizeof(MYLINE)=NULL) GlobalFree(hDistAlpha); return FALSE; OffBits=bf.bfOffBits-sizeof(BITMAPFILEHEADER);/BufSize為緩沖區(qū)大小 BufSize=OffBits+bi.biHeight*LineBytes; lpImgData=(LPBITMAPINFOHEADER)GlobalLock(hImgData); lpDistAlpha=(int *)GlobalLock(hDistAlpha); lpMyLine=(MYLINE *)GlobalLock(hMyLine);for (i=0;i(long)Dist*Alpha;i+) TempLine=(MYLINE*)(lpMyLine+i); (*TempLine).boty=32767; for (y=0;ybi.biHeight;y+) /lpPtr指向位圖數(shù)據(jù) lpPtr=(char *)lpImgData+(BufSize-LineBytes-y*LineBytes); for (x=0;xbi.biWidth;x+) if(*(lpPtr+)=0) /是個黑點 for (k=0;k (*TempLine).topy) /記錄該直線最高點的x,y坐標 (*TempLine).topx=x; (*TempLine).topy=y; if(y (*TempLine).boty) /記錄該直線最低點的x,y坐標 (*TempLine).botx=x; (*TempLine).boty=y; maxd=0; for (i=0;i maxd) maxd=k; MaxdLine.topx=(*TempLine).topx; MaxdLine.topy=(*TempLine).topy; MaxdLine.botx=(*TempLine).botx; MaxdLine.boty=(*TempLine).boty; hDc = GetDC(hWnd); rhp = CreatePenIndirect(&rlp); SelectObject(hDc,rhp); MoveToEx(hDc,MaxdLine.botx,MaxdLine.boty,NULL); LineTo(hDc,MaxdLine.topx,MaxdLine.topy); DeleteObject(rhp); ReleaseDC(hWnd,hDc); /釋放內存及資源 GlobalUnlock(hImgData);GlobalUnlock(hDistAlpha); GlobalFree(hDistAlpha); GlobalUnlock(hMyLine); GlobalFree(hMyLine); return TRUE;若 已知,可找到在該方向上最長的直線,通過以上程序。4.2輪廓提取輪廓提取的實例如圖所示。原圖輪廓提取掏空內部點就可對輪廓進行提?。涸瓐D中若有一點是黑的,與它相鄰的8個點也是黑色,那么就把那個點刪掉。源程序如下:BOOL Outline(HWND hWnd) DWORD OffBits,BufSize; LPBITMAPINFOHEADER lpImgData; LPSTR lpPtr;HLOCAL hTempImgData; LPBITMAPINFOHEADER lpTempImgData; LPSTR lpTempPtr; HDC hDc; HFILE hf; LONG x,y; int num; int nw,n,ne,w,e,sw,s,se;if( NumColors!=256) MessageBox(hWnd,Must be a mono bitmap with grayscale palette!,Error Message,MB_OK|MB_ICONEXCLAMATION);return FALSE;OffBits=bf.bfOffBits-sizeof(BITMAPFILEHEADER);/BufSize為緩沖區(qū)大小 BufSize=OffBits+bi.biHeight*LineBytes; if(hTempImgData=LocalAlloc(LHND,BufSize)=NULL) MessageBox(hWnd,Error alloc memory!,Error Message,MB_OK|MB_ICONEXCLAMATION);return FALSE; lpImgData=(LPBITMAPINFOHEADER)GlobalLock(hImgData); lpTempImgData=(LPBITMAPINFOHEADER)LocalLock(hTempImgData);/拷貝頭信息和位圖數(shù)據(jù) memcpy(lpTempImgData,lpImgData,BufSize); for (y=1;ybi.biHeight-1;y+) /注意y的范圍是從1到高度-2 lpPtr=(char *)lpImgData+(BufSize-LineBytes-y*LineBytes); lpTempPtr=(char *)lpTempImgData+(BufSize-LineBytes-y*LineBytes); for (x=1;x=SeedFillStack.ElementsNum) return FALSE; /棧已滿,返回FALSE TempPtr=(POINT *)(SeedFillStack.lpMyStack+SeedFillStack.ptr+); (*TempPtr).x=p.x; (*TempPtr).y=p.y; return TRUE;/pop操作POINT MyPop() POINT InvalidP; InvalidP.x=-1; InvalidP.y=-1; if(SeedFillStack.ptr0) /注意判斷邊界 NeighborP.x=CurP.x-1; NeighborP.y=CurP.y; lpTempPtr1=lpTempPtr-1; if(*lpTempPtr1!=0) /上鄰點 if(CurP.y0) /注意判斷邊界 NeighborP.x=CurP.x; NeighborP.y=CurP.y-1; lpTempPtr1=lpTempPtr+LineBytes; if(*lpTempPtr1!=0) MyPush(NeighborP); /右鄰點 if(CurP.xbi.biWidth-1) /注意判斷邊界 NeighborP.x=CurP.x+1; NeighborP.y=CurP.y; lpTempPtr1=lpTempPtr+1; if(*lpTempPtr1!=0) MyPush(NeighborP); /下鄰點 if(CurP.ybi.biHeight-1) /注意判斷邊界 NeighborP.x=CurP.x; NeighborP.y=CurP.y+1; lpTempPtr1=lpTempPtr-LineBytes; if(*lpTempPtr1!=0) MyPush(NeighborP); /析構堆棧,釋放內存 DeInitStack();if(hBitmap!=NULL) DeleteObject(hBitmap); hDc=GetDC(hWnd); /創(chuàng)建新的位圖 hBitmap=CreateDIBitmap(hDc,(LPBITMAPINFOHEADER)lpTempImgData,(LONG)CBM_INIT,(LPSTR)lpTempImgData+sizeof(BITMAPINFOHEADER)+NumColors*sizeof(RGBQUAD),(LPBITMAPINFO)lpTempImgData,DIB_RGB_COLORS); hf=_lcreat(c:seed.bmp,0); _lwrite(hf,(LPSTR)&bf,sizeof(BITMAPFILEHEADER); _lwrite(hf,(LPSTR)lpTempImgData,BufSize); _lclose(hf); /釋放內存和資源 ReleaseDC(hWnd,hDc); LocalUnlock(hTempImgData); LocalFree(hTempImgData); GlobalUnlock(hImgData); return TRUE;4.4輪廓跟蹤經過順序找出邊緣點以跟蹤出邊界就是輪廓跟蹤。廓跟蹤后的結果圖如下: 給出程序:BOOL Contour(HWND hWnd) DWORD OffBits,BufSize;LPB
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025技術實施許可合同書
- 2025年天津市房屋租賃合同模板
- 2025地下車庫租賃合同范本
- 2025家居智能小家電區(qū)域代理商銷售合同書
- 2025年一級建造師之一建港口與航道工程實務考前沖刺試卷B卷含答案
- 地震觀測儀器檢測規(guī)范 地震烈度儀
- 2025標準供貨合同協(xié)議書樣本標準供貨合同格式
- 2025住宅室內裝修施工合同
- 2025年標準清潔維護服務合同范本
- 電子專用設備電路分析與設計考核試卷
- 人力資源規(guī)劃案例分析題和答案解析
- 大棚建設鋼結構工程監(jiān)理實施細則安全監(jiān)理細則范本模板
- 梨山老母玄妙真經
- 2《建筑機械使用安全技術規(guī)程》JGJ33-2012
- 病人呼吸心跳驟停搶救流程
- GB/T 4802.2-2008紡織品織物起毛起球性能的測定第2部分:改型馬丁代爾法
- GB 14934-2016食品安全國家標準消毒餐(飲)具
- 英語高考3500詞帶音標
- 泥水平衡頂管施工方案(專家論證)
- 框架結構柱、梁板模板安裝技術交底
- 呼吸衰竭臨床表現(xiàn)及鑒別診療精編ppt
評論
0/150
提交評論