opencv - 如何准确检测圆

标签 opencv image-processing geometry hough-transform

opencv中有没有办法准确检测圆?我使用的是霍夫变换,它给了我很好的结果,但大多数时候,物体和周围环境的阴影、光线等给出了不好的结果,所以我正在寻找霍夫圆以外的选项,准确的检测对我的项目非常重要。

到目前为止,我的基本方法是在实时拍摄的图像中找到一些球体。我使用霍夫圆来查找球体,并根据从中得到的半径进行后续计算。

如果背景是普通的并且球体检测不到任何东西,则没有问题,但是如果我在我的房间里拍摄该图像,其中背景将有其他物体,则通常很难检测到。所以我正在寻找其他方法。

最佳答案

我也有类似的需求,需要准确地找到圆,但在准确检测方面,我只做了很少的工作。尝试使用。

  1. 轮廓检测,一旦有了轮廓就绘制轮廓。
  2. 使用 minEnendingCircle 在检测到的轮廓上绘制一个圆。
  3. 从轮廓中可以获得半径和 x,y 点

编辑:周围的对象和较小的对象也可以使用 ContourArea() 进行过滤。 检查较小的轮廓并消除

这应该比霍夫圆检测效果更好。祝你好运

关于opencv - 如何准确检测圆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13070075/

相关文章:

OpenCV圆畸变检测

algorithm - 在图像中查找棋盘

c# - OpenCV C# - 检测静态图像中的简单对象

c++ - cuda 多重图像侵 eclipse 不起作用

java - 如何将图像分解为子图像?

geometry - 绕:before element转一圈

opengl - 如何将 cudaArray (Cuda) 复制到 GpuMat (OpenCV)?

image-processing - 图像处理以提高 tesseract OCR 准确性

c++ - 圆弧计算点

java - 旋转形状并在原始位置绘制