資源描述:
《圖像處理之霍夫變換圓檢測(cè)算法.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、圖像處理之霍夫變換圓檢測(cè)算法一:霍夫變換檢測(cè)圓的數(shù)學(xué)原理根據(jù)極坐標(biāo),圓上任意一點(diǎn)的坐標(biāo)可以表示為如上形式,所以對(duì)于任意一個(gè)圓,假設(shè)中心像素點(diǎn)p(x0,y0)像素點(diǎn)已知,圓半徑已知,則旋轉(zhuǎn)360由極坐標(biāo)方程可以得到每個(gè)點(diǎn)上得坐標(biāo)同樣,如果只是知道圖像上像素點(diǎn),圓半徑,旋轉(zhuǎn)360°則中心點(diǎn)處的坐標(biāo)值必定最強(qiáng).這正是霍夫變換檢測(cè)圓的數(shù)學(xué)原理.二:算法流程該算法大致可以分為以下幾個(gè)步驟三:運(yùn)行效果圖像從空間坐標(biāo)變換到極坐標(biāo)效果,最亮一點(diǎn)為圓心.圖像從極坐標(biāo)變換回到空間坐標(biāo),檢測(cè)結(jié)果顯示:四:關(guān)鍵代碼解析個(gè)人覺得這
2、次注釋已經(jīng)是非常的詳細(xì)啦,而且我寫的還是中文注釋[java]?viewplaincopy1./**?2.?*?霍夫變換處理?-?檢測(cè)半徑大小符合的圓的個(gè)數(shù)?3.?*?1.?將圖像像素從2D空間坐標(biāo)轉(zhuǎn)換到極坐標(biāo)空間?4.?*?2.?在極坐標(biāo)空間中歸一化各個(gè)點(diǎn)強(qiáng)度,使之在0?255之間?5.?*?3.?根據(jù)極坐標(biāo)的R值與輸入?yún)?shù)(圓的半徑)相等,尋找2D空間的像素點(diǎn)?6.?*?4.?對(duì)找出的空間像素點(diǎn)賦予結(jié)果顏色(紅色)?7.?*?5.?返回結(jié)果2D空間像素集合?8.?*?@return?int?[]?9.?
3、*/??10.public?int[]?process()?{??11.??1.????//?對(duì)于圓的極坐標(biāo)變換來說,我們需要360度的空間梯度疊加值??2.????acc?=?new?int[width?*?height];??3.????for?(int?y?=?0;?y?
4、.????}??8.????int?x0,?y0;??9.????double?t;??10.????for?(int?x?=?0;?x?
5、theta++)?{??16.????????????????????t?=?(theta?*?3.)?/?180;?//?角度值0?~?2*PI??17.????????????????????x0?=?(int)?Math.round(x?-?r?*?Math.cos(t));??18.????????????????????y0?=?(int)?Math.round(y?-?r?*?Math.sin(t));??19.????????????????????if?(x0?
6、>?0?&&?y0??0)?{??20.????????????????????????acc[x0?+?(y0?*?width)]?+=?1;??21.????????????????????}??22.????????????????}??23.????????????}??24.????????}??25.????}??26.??27.????//?now?normalise?to?255?and?put?in?format?for?a?pixel?array??28
7、.????int?max?=?0;??29.??30.????//?Find?max?acc?value??31.????for?(int?x?=?0;?x??max)?{??35.????????????????max?=?acc[x?+?(y?*?width)];??36.??????
8、??????}??37.????????}??38.????}??39.??40.????//?根據(jù)最大值,實(shí)現(xiàn)極坐標(biāo)空間的灰度值歸一化處理??41.????int?value;??42.????for?(int?x?=?0;?x?