2015-07-28 115 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