我正在尝试使用OpenCV在拼字游戏游戏场中找到所有方块。
这是输入图像:
我设法将此图像转换为500x500灰度图片:
此后,我尝试检测正方形。
首先,我尝试使用thresh = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, 1, 11, 2)
生成此图像:
然后我做了_, contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
来找到正方形。我过滤了大于500但小于1000的轮廓区域。
然后我在原始图像上绘制找到的轮廓,以查看是否找到了所有正方形:
我看到几乎所有正方形都被检测到了,但是由于某种原因,无法检测到较浅颜色的正方形。 我想知道如何找到其余的较亮正方形,或者我做错了什么。
答案 0 :(得分:2)
获得500x500灰度图片后,为什么需要所有这些复杂功能?您有一张图片,知道有15行15列,只需将图片分成单独的正方形,即可得到您的画板。
无需进行任何OpenCV分析,一旦有了正方形,就可以100%确保正方形#0带有标记以及正方形#3、7等。