圖像處理之霍夫變換圓檢測算法
之前寫過一篇文章講述霍夫變換原理與利用霍夫變換檢測直線, 結果發現通路量還是蠻
多,有點超出我的意料,很多人都留言說代碼寫得不好,沒有注釋,結構也不是很清晰,是以
我萌發了再寫一篇,介紹霍夫變換圓檢測算法,同時也盡量的加上詳細的注釋,介紹代碼
結構.讓更多的人能夠讀懂與了解.
一:霍夫變換檢測圓的數學原理

根據極坐标,圓上任意一點的坐标可以表示為如上形式, 是以對于任意一個圓, 假設
中心像素點p(x0, y0)像素點已知, 圓半徑已知,則旋轉360由極坐标方程可以得到每
個點上得坐标同樣,如果隻是知道圖像上像素點, 圓半徑,旋轉360°則中心點處的坐
标值必定最強.這正是霍夫變換檢測圓的數學原理.
二:算法流程
該算法大緻可以分為以下幾個步驟
三:運作效果
圖像從空間坐标變換到極坐标效果, 最亮一點為圓心.
圖像從極坐标變換回到空間坐标,檢測結果顯示:
四:關鍵代碼解析
個人覺得這次注釋已經是非常的詳細啦,而且我寫的還是中文注釋
完整的算法源代碼, 已經全部的加上注釋
測試的UI類:
五:霍夫變換檢測圓與直線的圖像預處理
使用霍夫變換檢測圓與直線時候,一定要對圖像進行預處理,灰階化以後,提取
圖像的邊緣使用非最大信号壓制得到一個像素寬的邊緣, 這個步驟對霍夫變
換非常重要.否則可能導緻霍夫變換檢測的嚴重失真.
第一次用Mac發博文,編輯不好請見諒!