2015-07-28 114 views
0

我嘗試從 https://github.com/Itseez/opencv/blob/master/samples/cpp/houghcircles.cpp 得到使用霍夫圈算法圈的中心,但我需要更精確的座標。精度霍夫圓心變換

當我得到這樣 這

for(size_t i = 0; i < circles.size(); i++) 
{ 
    Vec3i c = circles[i]; 
    cout<<c[0]<<" "<<c[1]<<endl; 
} 

這些座標它打印只是整數部分。 是否有任何可能性讓中心更精確(4位小數或更多)?

+0

可能重複的[我如何獲得準確的中心點?](http://stackoverflow.com/questions/30958751/how-can-i-get-accurate-center-points) – anderas

回答

0

通過將座標分配給整數向量(Vec3i),您明確地將座標轉換爲整數。

cout<<circles[0]<<" "<<circles[1]<<endl; 

然而,這些結果可能不會像你的願望準確:如果您打印他們這樣,你會爲你的OpenCV讓他們打印的值。在這種情況下,由於OpenCV不能提供更準確的結果,因此您目前的方法並不順利。

+0

是的,你是對的,但即使是如果我確實喜歡所有的值看起來像--- 5,它總是.5它不是準確的!你知道有可能找到它們更準確嗎? –

+0

請參閱我編輯的答案:使用該方法可能無法獲得更準確的結果。你可以嘗試的唯一方法就是將'dp'參數設置爲像'1./16'這樣的值,以得到16倍圖像分辨率的霍夫累加器。不過,我不知道這是否會真正起作用...... – anderas