霍夫圓變換

對于直線來說幻赚,一條直線能有參數(shù)極徑級角表示,而對圓來說我們需要三個參數(shù)來表示一個圓

在OpenCV中预皇,我們常常通過一個叫“霍夫梯度法”的方法來解決圓變換的問題稳吮。

霍夫梯度法的原理

(1)首先對圖像應(yīng)用邊緣檢測,比如canny邊緣檢測

(2)然后對邊緣圖像中的每一個非零點,考慮其局部梯度,即用sobel函數(shù)計算x和y方向的Sobel一階導(dǎo)數(shù)得到的梯度。

(3)可用得到的梯度缤骨,有斜率指定的直線上的每個點都在累加器中累加,這里的斜率是從一個指定的最小值到指定的最大值得距離

(4)同時標(biāo)記圖像中每一個非0像素的位置

(5)然后從二維累加器中這些點鐘選擇候選的中心尺借,這些中心都大于給定閾值并且大于其所有近鄰绊起,這些候選的中心按照累加值將序排列,以便于最支持像素的中心首先出現(xiàn)

(6)接下來對每一個中心燎斩,考慮所有的非0元素

(7)這些元素按照其與中心的距離排序虱歪。從最大半徑到最小半徑算起,選擇非0像素最支持的一條半徑

(8)如果一個中心收到邊緣圖像非0像素的最充分支持瘫里,并且到前期被選擇的中心有足夠的距離实蔽,那么他就會被保留下來。

這個實現(xiàn)可以使算法執(zhí)行起來更高效谨读,獲取更加重要的是能夠幫助解決三維累加器中國會產(chǎn)生許多噪聲并且使得結(jié)構(gòu)不穩(wěn)定的稀疏分布問題局装。

霍夫梯度法的缺點

(1)在霍夫梯度法中,我們使用Sobel導(dǎo)數(shù)來計算局部梯度,那么隨之而來的假設(shè)是铐尚,它可以視作等同于一條局部切線拨脉,這并不是一個穩(wěn)定的做法,在大多數(shù)的情況下宣增,這樣做會得到正確答案玫膀,但或許會輸出產(chǎn)生一些噪聲。

(2)在邊緣圖像中的整個非0像素集爹脾,被看做每個中心的候選部分帖旨。因此如果把累加器的閾值設(shè)置的偏低,算法需要消耗更長的時間灵妨。因此解阅,每一個中心只會選擇一個圓,如果有同心圓泌霍,就只能選擇一個

(3)因為中心是按照其關(guān)聯(lián)的累加器值得升序排列的货抄,并且如果新的中心過于接近之前已經(jīng)接受的中心的話,就不被保留下來朱转,并且當(dāng)有很多的同心圓或者是近似同心圓時蟹地,霍夫梯度法的傾向是保留最大的一個圓,可以說這也是一種比較極端的算法藤为,因為子在這里默認Sobel導(dǎo)數(shù)會產(chǎn)生噪聲怪与,若是對于無窮分辨率的平滑圖像而言,這是必須的凉蜂。

霍夫圓變換函數(shù):HounghCircles()函數(shù)

void HoughCircles(InputArray image,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? OutputArray circles,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? int method,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? double dp,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? double minDist,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? double param1 =100,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?double param2 =100,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?int minRadius =0,

? ? ? ? ? ? ? ? ? ? ? ? ? ? int maxRadius =0);

函數(shù)參數(shù)詳解

代碼實現(xiàn)

NSString*image =@"dkdk.jpg";

UIImage*image1 = [UIImageimageNamed:image];

Matim;

UIImageToMat(image1, im);

if(im.empty()) {

return;

}

//創(chuàng)建零時變量

Mat midImage,dstImage;

//轉(zhuǎn)換為灰度圖像進行圖像平滑

cvtColor(im, midImage,COLOR_BGR2GRAY);

GaussianBlur(midImage, midImage,cv::Size(9,9),2,2);

//進行霍夫圓變換

std::vector<Vec3f> circle;

HoughCircles(midImage, circle,HOUGH_GRADIENT,1.5,10);

//依次在圖中繪制出圓

for(size_ti =0; i < circle.size(); i++) {

//圓心

cv::Point center(cvRound(circle[i][0]),cvRound(circle[i][1]));

//半徑

int radius =cvRound(circle[i][2]);

//繪制

cv::circle(midImage, center, radius,Scalar(0,88,255));

}

self.secondImageView.image=MatToUIImage(midImage);

效果

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末琼梆,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子窿吩,更是在濱河造成了極大的恐慌,老刑警劉巖错览,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纫雁,死亡現(xiàn)場離奇詭異,居然都是意外死亡倾哺,警方通過查閱死者的電腦和手機轧邪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來羞海,“玉大人忌愚,你說我怎么就攤上這事∪吹耍” “怎么了硕糊?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我简十,道長檬某,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任螟蝙,我火速辦了婚禮恢恼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘胰默。我一直安慰自己场斑,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布牵署。 她就那樣靜靜地躺著漏隐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪碟刺。 梳的紋絲不亂的頭發(fā)上锁保,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天,我揣著相機與錄音半沽,去河邊找鬼爽柒。 笑死,一個胖子當(dāng)著我的面吹牛者填,可吹牛的內(nèi)容都是我干的浩村。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼占哟,長吁一口氣:“原來是場噩夢啊……” “哼心墅!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起榨乎,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤怎燥,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蜜暑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體铐姚,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年肛捍,在試婚紗的時候發(fā)現(xiàn)自己被綠了隐绵。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡拙毫,死狀恐怖依许,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情缀蹄,我是刑警寧澤峭跳,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布膘婶,位于F島的核電站,受9級特大地震影響坦康,放射性物質(zhì)發(fā)生泄漏竣付。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一滞欠、第九天 我趴在偏房一處隱蔽的房頂上張望古胆。 院中可真熱鬧,春花似錦筛璧、人聲如沸逸绎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽棺牧。三九已至,卻和暖如春朗儒,著一層夾襖步出監(jiān)牢的瞬間颊乘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工醉锄, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留乏悄,地道東北人。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓恳不,卻偏偏與公主長得像檩小,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子烟勋,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,933評論 2 355

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