给定一个连接四棋盘的图像,我想识别并输出棋盘的状态(一个6乘7的矩阵)。我尝试的第一种方法是基于找到圆圈,然后在它们的质心中寻找网格模式。
这是我正在使用的open-cv函数:
circles = cv2.HoughCircles(bw_im,
cv2.cv.CV_HOUGH_GRADIENT,
dp=DP,
minDist=MIN_DIST,
minRadius=MIN_RADIUS,
maxRadius=MAX_RADIUS)
我加入了非极大值抑制,但结果并不理想。
是否有比直接处理Hough圆更好的方法?也许有某种我不知道的“填充圆度”形态学操作。
这是一个示例输入图像: 您可以假设输入图像已被裁剪,并具有与上述类似的边距(我有另一段代码来处理此问题)。
cv2.inRange
,例如这里,你可以先将图像转换为HSV格式,然后轻松地分割红色和黄色(以及最终的蓝色)。 - Miki