Java 用openCV从图像中寻找圆形区域

Java 用openCV从图像中寻找圆形区域,java,opencv,Java,Opencv,我从我的图像中找到了轮廓。我想从图像中找到圆形区域。OpenCV有SimpleBlobDetector和它的方法循环性,这可能会起作用,但我没有发现任何有用的东西使它起作用。有什么想法或建议去哪里找吗 例如: 预期结果: 这是检测圆的最流行算法:。您可能需要一些时间来理解,但对于几个半径,它会计算出中心概率的贴图,然后添加它们。您设置半径范围和阈值,算法返回一个检测圆。< /p>用C++编写,但类似函数应该在java中可用。我想是的,这是一个好的开始,并且有java函数用于 HooCurrys

我从我的图像中找到了轮廓。我想从图像中找到圆形区域。OpenCV有SimpleBlobDetector和它的方法循环性,这可能会起作用,但我没有发现任何有用的东西使它起作用。有什么想法或建议去哪里找吗

例如:

预期结果:


这是检测圆的最流行算法:。您可能需要一些时间来理解,但对于几个半径,它会计算出中心概率的贴图,然后添加它们。您设置半径范围和阈值,算法返回一个检测圆。< /p>用C++编写,但类似函数应该在java中可用。我想是的,这是一个好的开始,并且有java函数用于<代码> HooCurrys/Cuff>。现在我需要更抽象地寻找椭圆。此项的关键字可能是
SimpleBlobDetector
并按圆度过滤。另一个您希望使用的指针表示,必须将其转换为灰色图像,并在应用HoughCircles之前对其进行平滑处理HoughCircle似乎无法解决问题,因为它仅用于检测完整的圆。我想我必须重新定义检测曲线的问题。如果你深入研究,你会发现它在你的案例中起作用。简而言之,for(半径范围内的r);对于(图像中的每个点);半径r的地图值=半径r圆上的黑色像素数;结束于;结束于;添加地图;对于最高值,检索此位置的值较高的地图。你有圆心和半径,也许不是这样,但原理是一样的。请看一下维基百科关于Hough圆变换部分的前两幅图像: