opencv+python -- 霍夫圓檢測

.霍夫圓變換的基本原理和霍夫線變換原理類似傍妒,只是點對應(yīng)的二維極徑、極角空間被三維的圓心和半徑空間取代。在標(biāo)準(zhǔn)霍夫圓變換中拢军,原圖像的邊緣圖像的任意點對應(yīng)的經(jīng)過這個點的所有可能圓在三維空間用圓心和半徑這三個參數(shù)來表示屯吊,其對應(yīng)一條三維空間的曲線送巡。對于多個邊緣點,點越多盒卸,這些點對應(yīng)的三維空間曲線交于一點的數(shù)量越多骗爆,那么他們經(jīng)過的共同圓上的點就越多,類似的我們也就可以用同樣的閾值的方法來判斷一個圓是否被檢測到蔽介,這就是標(biāo)準(zhǔn)霍夫圓變換的原理摘投, 但也正是在三維空間的計算量大大增加的原因,標(biāo)準(zhǔn)霍夫圓變化很難被應(yīng)用到實際中虹蓄。

2.OpenCV實現(xiàn)的是一個比標(biāo)準(zhǔn)霍夫圓變換更為靈活的檢測方法——霍夫梯度法犀呼,該方法運算量相對于標(biāo)準(zhǔn)霍夫圓變換大大減少。其檢測原理是依據(jù)圓心一定是在圓上的每個點的模向量上薇组,這些圓上點模向量的交點就是圓心外臂,霍夫梯度法的第一步就是找到這些圓心,這樣三維的累加平面就又轉(zhuǎn)化為二維累加平面律胀。第二步是根據(jù)所有候選中心的邊緣非0像素對其的支持程度來確定半徑专钉。注:模向量即是圓上點的切線的垂直線挑童。

image.png

霍夫圓檢測原理參考:
https://blog.csdn.net/dcrmg/article/details/52506538

import cv2 as cv
import numpy


def hough_circle_demo(image):
    # 霍夫圓檢測對噪聲敏感,邊緣檢測消噪
    dst = cv.pyrMeanShiftFiltering(image, 10, 100)  # 邊緣保留濾波EPF
    gray = cv.cvtColor(dst, cv.COLOR_BGR2GRAY)
    circles = cv.HoughCircles(gray, cv.HOUGH_GRADIENT, 1, 20, param1=50, param2=30, minRadius=0, maxRadius=0)
    circles = numpy.uint16(numpy.around(circles))  #把circles包含的圓心和半徑的值變成整數(shù)
    for i in circles[0, :]:
        cv.circle(image, (i[0], i[1]), i[2], (0, 0, 255), 2)
        cv.circle(image, (i[0], i[1]), 2, (255, 0, 0), 2)
    cv.imshow("circle image", image)


src = cv.imread("./data/coins.png", cv.IMREAD_COLOR)
cv.namedWindow("coins", cv.WINDOW_AUTOSIZE)
cv.imshow("coins", src)
hough_circle_demo(src)
cv.waitKey(0)
cv.destroyAllWindows()

運行結(jié)果

霍夫圓檢測.png

API

1.OpenCV的霍夫圓變換函數(shù)原型為:HoughCircles(image, method, dp, minDist[, circles[, param1[, param2[, minRadius[, maxRadius]]]]]) -> circles

image參數(shù)表示8位單通道灰度輸入圖像矩陣跃须。

method參數(shù)表示圓檢測方法站叼,目前唯一實現(xiàn)的方法是HOUGH_GRADIENT。

dp參數(shù)表示累加器與原始圖像相比的分辨率的反比參數(shù)菇民。例如尽楔,如果dp = 1,則累加器具有與輸入圖像相同的分辨率第练。如果dp=2阔馋,累加器分辨率是元素圖像的一半,寬度和高度也縮減為原來的一半娇掏。

minDist參數(shù)表示檢測到的兩個圓心之間的最小距離呕寝。如果參數(shù)太小,除了真實的一個圓圈之外婴梧,可能錯誤地檢測到多個相鄰的圓圈下梢。如果太大,可能會遺漏一些圓圈塞蹭。

circles參數(shù)表示檢測到的圓的輸出向量孽江,向量內(nèi)第一個元素是圓的橫坐標(biāo),第二個是縱坐標(biāo)番电,第三個是半徑大小岗屏。

param1參數(shù)表示Canny邊緣檢測的高閾值,低閾值會被自動置為高閾值的一半漱办。

param2參數(shù)表示圓心檢測的累加閾值这刷,參數(shù)值越小,可以檢測越多的假圓圈娩井,但返回的是與較大累加器值對應(yīng)的圓圈暇屋。

minRadius參數(shù)表示檢測到的圓的最小半徑。

maxRadius參數(shù)表示檢測到的圓的最大半徑撞牢。

2.OpenCV畫圓的circle函數(shù)原型:circle(img, center, radius, color[, thickness[, lineType[, shift]]]) -> img

img參數(shù)表示源圖像。

center參數(shù)表示圓心坐標(biāo)叔营。

radius參數(shù)表示圓的半徑屋彪。

color參數(shù)表示設(shè)定圓的顏色。

thickness參數(shù):如果是正數(shù)绒尊,表示圓輪廓的粗細(xì)程度。如果是負(fù)數(shù),表示要繪制實心圓筹误。

lineType參數(shù)表示圓線條的類型。

shift參數(shù)表示圓心坐標(biāo)和半徑值中的小數(shù)位數(shù)躯泰。

參考:https://www.cnblogs.com/FHC1994/p/9386783.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市华糖,隨后出現(xiàn)的幾起案子麦向,更是在濱河造成了極大的恐慌,老刑警劉巖客叉,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诵竭,死亡現(xiàn)場離奇詭異,居然都是意外死亡兼搏,警方通過查閱死者的電腦和手機(jī)卵慰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來佛呻,“玉大人裳朋,你說我怎么就攤上這事∠胖” “怎么了鲤嫡?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長夜矗。 經(jīng)常有香客問我泛范,道長,這世上最難降的妖魔是什么紊撕? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任罢荡,我火速辦了婚禮,結(jié)果婚禮上对扶,老公的妹妹穿的比我還像新娘区赵。我一直安慰自己,他們只是感情好浪南,可當(dāng)我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布笼才。 她就那樣靜靜地躺著,像睡著了一般络凿。 火紅的嫁衣襯著肌膚如雪骡送。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天絮记,我揣著相機(jī)與錄音摔踱,去河邊找鬼。 笑死怨愤,一個胖子當(dāng)著我的面吹牛派敷,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼篮愉,長吁一口氣:“原來是場噩夢啊……” “哼腐芍!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起试躏,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤猪勇,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后冗酿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體埠对,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年裁替,在試婚紗的時候發(fā)現(xiàn)自己被綠了项玛。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡弱判,死狀恐怖襟沮,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情昌腰,我是刑警寧澤开伏,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站遭商,受9級特大地震影響固灵,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜劫流,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一巫玻、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧祠汇,春花似錦仍秤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至我抠,卻和暖如春苇本,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背菜拓。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工瓣窄, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人尘惧。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓康栈,卻偏偏與公主長得像递递,于是被迫代替她去往敵國和親喷橙。 傳聞我的和親對象是個殘疾皇子啥么,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容