如何用opencv检测模糊圆的中心
Posted
技术标签:
【中文标题】如何用opencv检测模糊圆的中心【英文标题】:how to detect center of a blurry circle with opencv 【发布时间】:2012-07-19 14:44:56 【问题描述】:我得到了以下图片:
图片上有曲线。 我想找到包含曲线的圆心。
我尝试了 opencv 和霍夫圆变换,但没有结果。
【问题讨论】:
DSP 可能是一个更好的问题 看起来中心实际上在图像之外,对吗? 是的,中心在外面,但是当我使用霍夫圆变换时,我会使用更大的图片,中间是这张图片。 【参考方案1】:自然候选者是cvHoughCircles
。每条曲线的每个部分都为标识中心点的X/Y/R
三元组添加“投票”。现在,你只有部分圈子,所以票数有限,准确率降低了,但你可能怀疑太多了。
【讨论】:
【参考方案2】:这是我首先要尝试的:
请注意,如果您从圆的真实中心绘制光线,则沿它们的图像强度的局部最大值出现在与光线方向无关的间隔处。这些间隔是连续圆的半径长度之间的差异。
因此,固定一个数字或射线方向,例如在 [0, pi] 中等距分布的 16 个,并定义一个成本函数,该成本函数参数化在中心的 (xc, yc) 坐标和圆的 ri 半径上,带有成本等于,例如,沿半径的最大值位置的方差 在不同的半径之间。
【讨论】:
【参考方案3】: 图像阈值 腐蚀它,直到几乎没有或没有噪音(小斑点) 向后扩张 找到大斑点。如果仍有一些小斑点,请选择最大区域。 使用 cv::moments 找到它的质心【讨论】:
以上是关于如何用opencv检测模糊圆的中心的主要内容,如果未能解决你的问题,请参考以下文章