您好,欢迎访问三七文档
0指導老師:林達德教授學生:吳昌宏學號:B87611002繳交日期:2002/01/240目錄目錄.........................................................................................................0第一章前言...............................................................................................1第二章文獻探討......................................................................................2GradientOperator..........................................................................2LaplacianOperator........................................................................3Hessian...............................................................................................3KR‘sMethod.....................................................................................4GHT.......................................................................................................4第三章程式介紹......................................................................................6程式介面:.........................................................................................6程式的使用流程:............................................................................7操作展示(一):(直角h.bmp)......................................................9操作展示(二):(斜角rect.bmp)................................................13操作展示(三):(圓角roundangle.bmp)....................................20第四章結論.............................................................................................23第五章參考文獻....................................................................................251第一章前言現在影像處理技術應用廣泛,而邊緣偵測也是一個重要的課題,再其中邊角的偵測(CornerDetection)更為有用。我們求出邊界角後,所能應用的範圍就很廣了。例如:由空照圖,我們可以偵測出建築物的邊緣以及角落,以定出位置。或著,再做車牌辨識時,我們可以把車牌的邊角偵測出來,再對其內的目標做進一步的辨識出車牌號碼。又或著,只是單純的希望去由CCD所擷取到的影像中,去偵測有哪些地方有邊角,讓機器手臂去定位,之後再去做接下來的作業。這些都是CornerDetection可以應用的範圍。其中遮罩的使用是比較普遍的方式。而其中梯度運算子(GradientOperator)f以及Laplacian運算子f2。我這次的專題報告主要是希望藉由這兩個運算子以求邊界角落,主要是希望基於前人的理論,並以程式的方式將其實務化。2第二章文獻探討本章的對象是針對本課程(影像處理)所討論的離散數列,而並非數學上的連續函數。在此先說明一下之後會用到的名詞以及預先作一個定義。在一個3x3的imageregion中,Z5是我們接下來做遮罩運算時的對象,而其他的為Z5的相鄰。GradientOperator此遮罩運算子在邊緣的地方響應特別強烈。所以,常用來作為邊緣檢測的工具[2.]。yfxfGGfyx2/122][)(yxGGfmag在影像處理中,Gx和Gy為Sobeloperatormasks。Z1Z2Z3Z4Z5Z6Z7Z8Z93而32198722zczzzzGx74196322zczzzzGyLaplacianOperator數學上的意義[2.]為22222yfxff而在影像處理上,Laplacian也是一個常用來作邊緣檢測的工具其遮罩為)(4864252zzzzzfHessianThelocalintensityvariationisexpandedasfollows:2/2/)0,0(),(22yIxyIxIyIxIIyxIyyxyxxyx而其二階微分的對稱矩陣為yxxyyyyxxyxxIIIIIIwhere,)2(而Hessian=det()2()=2xyyyxxIII這是Beaudet(1978)所得到的一個遮罩運算子。為對於邊角的偵測所提出的理論[3.]。4KR‘sMethodKitchenandRosenfeld(1982)提出了一個對於定位邊角不同的想法去避免複雜的步驟[3.]。他們發現了有效的運算子去判斷突出的梯度變化率,並且證明了數學上的水平曲率κ和之前提到的強度函數I有關。為了獲得一個可行邊角的弧度表示法,他們把水平曲率κ乘上localintensitygradientg的大小:22222/1222)(yxxyyyxxyyxxyxIIIIIIIIIIIgC其後,1983Nagel也證明了KRcornerdetector的可行性。GHT在1986Davies提出了GHT(GeneralizedHoughTransform)在邊角偵測上合適的技術[4.]。主要的方法是對邊緣的每一個點作一個範圍的D的法線上的點如右圖,如此在corner的部分,其頻譜會較大也藉此將corner與edge的差異突顯出來。我就是依照這差異,在做出其頻譜之後,對其頻譜做二元化的動作,5將頻譜較小(邊)的部分給去掉,最後留下的就是頻譜較大的角的部分。這樣的好處就是可以偵測出有些許弧度的角落,畢竟像是下圖那樣的圖形,其實也算是個”破碎”的角落。這也是需要被偵測出來的。圖1GHT角偵測器示意圖DD6第三章程式介紹程式介面:介面解說:1.FILE:包括開檔,存檔以及Exit。2.Processing:包括灰階化,二元化,細線化(其實是去對其作求骨架的動作,所以必須先對他做過Sobel或者Laplacian的邊緣強化的動作),和Initialize(要做參數的初始化用)。123473.DetectorI:包括了Sobel(Gradient運算),Laplacian的邊緣偵測方法。4.DetectorII:就是Hessian,還有KR所用的方法,以及GHT的邊角偵測方法。程式的使用流程:1.首先開啟檔案(限制為512x512x16bits)2.之後圖檔會show在Form上,這也就是我們所要處理的對象。3.依圖檔的對象以及目的的不同,可以分別對其做二元化,灰階化,或者細線化(其實是去對其作求骨架的動作,所以必須先對他做過Sobel或者Laplacian的邊緣強化的動作)。4.接下來必須要做的動作是Processing-Initialize。因為這個動作是去將圖面上的參數(xyyyxxyxIIIII,,,,),之後對現在show在Form上面的圖作處理(這表示可以重複的對這張圖做不同的處理)。不過每做完一種處理,若是希望在對處理過後的圖去做別的處理就需要在做一次Initialize的動作。不過做完了一次Initialize的動作之後,可以去看看DetectorI各種處理過後的結果(其實Detector只是一個去把結果切換的工具,其實所有的參數在Initialize過後就已經決定了,也並是由此決定的,所以8這個動作可說是本次專題處理的核心)。5.如果是採用KR’sMethod去做處理,那麼還有個動作需要去調整。就是去調整畫面左方”KR’sMethod”這個ToolBox裡面的閥值,去手動調整出最合理的結果,這是一個必須的動作。6.若是採用DetectorII-GHT也就是本次專題,結果最成功的角偵測器。則需要再去對其做二元化的動作,其實也就是跟5.一樣的手動調整濾掉我們所不需要的部分。但是這個方法的二元化閥值取得並不困難,只要稍加調整就可以找到最佳值了,但是尚未發展出可以100%正確的濾去雜訊的遮罩,所以有時或許會有許多的雜訊出現,然而其效果仍然比其他的方法好得多了。另外在5.和6.經過把主要的點濾出以後,剩下來的零星的點就是Cornerdetection反應比較強烈的地方,接下來還可以做的是去用累積方格的方式去找出實際圖上真正是角落的地方,同時標出來。不過,這部分也是尚未著手,但是在作業六中已經有過實作過了,這是可行的計劃。9操作展示(一):(直角h.bmp)原圖:10邊緣偵測:Sobel和Laplacian的結果相仿,差異不大,皆如下圖。11角落偵測:Hessian的結果:KR的結果:12GHT的結果:偵測白色外凸。偵測(白色內凹)黑色外凸。可知三者對垂直直角的響應都非常好。(GHT對於白色的內凹響應不強,用一個參數的正負號可補強)13操作展示(二):(斜角rect.bmp)原圖:14邊緣偵測:必須先對其做二元化。Sobel的結果:Laplacian的結果兩者的效果都不錯。15角落偵測:Hessian的結果:就無法只顯示出角落的部分了。16KR的結果:紅色表示有找到的角落點。而藍色則表示未偵測到的角落點。17再降低閥值的結果:紅色表示有找到的角落點。而黃色則表示雜訊,即誤判的點。18GHT的結果:白色外凸:紅色表示有找到的角落點。而藍色則表示未偵測到的角落點。19白色內凹:紅色表示有找到的角落點。而藍色則表示未偵測到的角落點。所以兩種情形相輔相成,出來的結果令人滿意。20操作展示(三):(圓角roundangle.bmp)原圖:21角落偵測:KR的結果:尚稱集中,但是弧形過大易造成日後再製作累積方格時的困難。22GHT的結果:效果比KR稍微好一些,在GHT裡面有個參數可以調整去找不同弧度大小的圓角,這是比較佔優勢的地方。23第四章結論比較Sobel(Gradient運算子)和Laplacian偵測邊緣的能力,似乎是沒有孰優孰裂,各有各的好處,雖然Laplacian的響應比較強,但是也可能因此受到雜訊的干擾而大失效果,反之Sobel的廣泛的使用就不僅僅侷限在邊緣的偵測了。在Hessian、KR’sMethod還有GHT來偵測角落的結果比較中,KR和GHT是比較能夠準確的偵測出各種角落的,而GHT的使用的彈性範圍又比KR的大(也可用GHT的同理去找尋圓的特偵點)。其實各種方法各有各的優點,依照目標而隨時改變方法是比較好的方法,且應適時使用各種影像處理的技巧,如:二元化,細線化,反白……等等,這樣才能將各種方
本文标题:影像中角落的侦测
链接地址:https://www.777doc.com/doc-3256467 .html