- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
霍氏转换於圆侦测之应用
期末報告
霍氏轉換於圓偵測之應用
生機四 張向勻目錄
目錄 I
第1章 前言 1
第2章 文獻探討 2
2.1. Sobel遮罩的邊緣檢測 2
2.2. 圓偵測之霍氏轉換 2
第3章 方法介紹 4
3.1. 已知半徑圓偵測 4
3.2. 未知半徑圓偵測 5
第4章 結果討論 7
參考文獻 8
附錄 程式使用說明 9
前言
在影像處理的應用中,前景及背景的分離是十分常見的動作,而當我們做到背景分離後,更進一步的是在雜亂的前景影像中,找到我們感興趣的特定影像,如特定的形狀、顏色、大小的影像,對人眼而言,這當然十分容易分辨,但是對電腦就不同了,對特殊影像的偵測及擷取往往需要在特殊參數平面來進行,霍氏轉換就是其中一種,其應用範圍十分的廣,直線,圓形,角落都可應用霍氏轉換來完成,本報告及使用霍氏轉換來執行影像中的圓形偵測。文獻探討
Sobel遮罩的邊緣檢測
Sobel遮罩是用來檢測影像中邊緣的3 ×3梯度運算子,分為X方向與Y方向兩種運算子:
Gx: ; Gy:
而對(x,y)而言,其梯度的強度G可表示為:
以此遮罩對影像作處理所得之新影像,響應強烈的位置就是邊界的部分。
圓偵測之霍氏轉換
對一個圓形邊界而言,其梯度的向量角度為:
因此,若是我們對一個圓形邊界上的每一個pixel找其梯度向量,言向量移動R的長度,若是R為圓的半徑,可以想見所有的點都會集中在圓心,但若是我們對一個不是圓形的邊界做此動作,則轉換出來的點將會比較分散,這就提供了我們一個很好的圓偵測的參考平面。
轉換的方式如下:
Xc,Yc為轉換後的新座標。此公式適用於背景的灰度值較低而前景的灰度值較高時的圓偵測。
方法介紹
已知半徑圓偵測
對於以之半徑的圓偵測的處理步驟如下:
對影像做二元化。
以Sobel運算子求出邊界。
應用上一章的霍氏轉換將R帶入求出轉換平面。
以適當大小的累積方格(大小由偵測圓的半徑決定)搜尋參數平面中響應較強且密集的部分。
求出方格中所有點的加權平均位置,回到圓影像中將圓位置標出,包括圓心及輪廓。
二元化影像 邊界影像
霍氏轉換後之影像 標出圓位置
未知半徑圓偵測
對於未知半徑圓的偵測,需先給定一半徑的範圍,而對此範圍的每個R都帶入運算,結果累計於同一個參數平面上,其餘步驟與已知半徑之偵測方式相同。
程式執行之結果:
二元化影像 邊界影像
霍氏轉換後之影像 標出圓心
由於在累積方格的計算中,時常出現上圖中兩個方格偵測到同一圓的情形,因此,本程式的解決方法是對每個有響應的累積方格查詢其八相鄰的累積方格,若是也有響應,則認定為是同一物件,將兩個方格中的點一同計算平均值,因此可以看到,上圖中霍氏轉換的平面雖然有兩個方格對同一圓都有響應,但是所繪出的圓心卻是只有一個,而會出現一個圓有兩個圓心的情形。
結果討論
以霍氏轉換應用於圓形偵測的效果還算令人滿意,尤其是對已知半徑圓的偵測,但對於未知半徑的圓偵測仍存在幾個問題,一是由於半徑的不同,不同大小的圓形在霍氏平面上的響應相差甚大,如何選取是當的閥值來做累積方格的判斷是一大問題,本程式是以所設定的半徑上下限以及範圍的大小來決定閥值,但是仍無法同時偵測大小相差太多的圓形。第二個缺點是,由於所有半徑的轉換結果都累積再同一平面上,因此找出圓後,無法簡單的求出確實的半徑,只能求出圓心所在。
而就運算量而言,由於只對邊界的點作運算,霍氏轉換的速度是可以接受的,尤其是對固定半徑圓的搜尋而言,霍氏轉換是一個很好的選擇。
參考文獻
Davies, E.R. 1997. Machine Vision: Theory, Algorithms, Practicalities.
Rafael C.Gonzalez/Richard E. woods, 1992, Digital Image Processing.
附錄 程式使用說明
程式執行之畫面:
開啟bmp檔
開啟bmp檔的分法有二,執行“檔案”選單中的“讀BMP檔”選項,或是點一下工具列中的按鈕。
執行圓偵測
要執行圓偵測動作可執行“偵測圓形”選單中的“偵測圓->多半徑”選項或是“偵測圓->固定半徑”選項。或是點一下工具列中的按鈕:
在接下來出現的小視窗中,輸入搜尋半徑或是其的上下限,按下確定,即可開始搜尋圖形中的圓形。
7
文档评论(0)