【发布时间】:2014-02-28 11:03:45
【问题描述】:
我的问题如下。我需要精确测量位图中圆圈的直径。 我有几个圆圈的位图。其中一些是同心的。我需要它们的直径值。 我尝试了 OpenCV 和 EmguCV 以及他们的方法 HoughCircles。但是这种方法在没有圆圈的地方找到圆圈(我尝试了很多输入参数的组合)。广告如果找到它们,则没有任何情况,当它发现与位图中完全相同的圆圈时。它们的中心和直径与原始图片上的圆圈不同。所以这种方法只适用于某种游戏。不是为了我的目的(工业精确测量)。
你知道一些方法或算法如何做到这一点吗? (我更喜欢 C#,但如果是伪代码或其他语言,我会重写它)
提前致谢。
【问题讨论】:
-
你能发一张示例图片吗?
-
什么颜色格式(24位,灰度?)
-
如果你能在一个圆上找到 3 个不同的点,你就可以计算出这个圆的直径和它的中心。如果您有超过 3 个点,您可以将点组合为 3,并检查直径/中心是否相同。
-
关于图像处理的任何问题,请至少发布一张示例图像。我们中的许多人都有在工业应用的图像中寻找圆圈的经验。任何图像处理应用程序的第一条规则:显示图像。
-
嗨,Maerorek,您提到了工业精确测量,但您需要首先提供很多信息。您说您尝试过 HoughCircles,但您是否进行了背景减法以最大程度地减少误报。通过使用轮廓分析,轮廓检测方法可能会更合适。codeproject.com/Articles/196168/…光照条件会改变吗?您需要什么精度,您的硬件是否能够提供您需要的精度?干杯
标签: c# opencv image-processing pattern-matching emgucv