【发布时间】:2016-05-21 02:42:09
【问题描述】:
给定一个连接 4 板的图像,我想识别并输出板的状态(一个 6 x 7 矩阵)。我尝试的第一种方法是先找到圆圈,然后在它们的质心中寻找网格图案。
这是我正在使用的 open-cv 函数:
circles = cv2.HoughCircles(bw_im,
cv2.cv.CV_HOUGH_GRADIENT,
dp=DP,
minDist=MIN_DIST,
minRadius=MIN_RADIUS,
maxRadius=MAX_RADIUS)
我加了非极大值抑制,但是效果不是很好。
有没有比直接处理霍夫圆更好的方法,也许有某种我不知道的填充循环形态学操作。
这是一个示例输入图像:
您可以假设输入图像已被裁剪并且具有与上述类似的边距(我有另一段代码可以处理此问题)。
【问题讨论】:
-
圆圈,为什么一定是圆圈?分割红色/黄色斑点并使用它们的质心可能更简单。
-
看看
cv2.inRange,例如here,您可以轻松地分割红色和黄色(最后是蓝色),首先将您的图像转换为 HSV。 -
我也会推荐 HSV 颜色空间以及分割或轮廓检测等。
标签: python opencv machine-learning computer-vision vision