gpt4 book ai didi

python - 如何可靠地找到图像上的复选框(使用 cv2.findContours 或其他技术)?

转载 作者:太空宇宙 更新时间:2023-11-03 21:31:24 38 4
gpt4 key购买 nike

我正在尝试识别这张图片上的 6 个方 block :

enter image description here

检测哪些是选中的或黑色的(这里是 (1,1) 和 (3,2))。

  • 周围可能有一些文字或一些绘图,但真的与复选框没有什么相似之处

  • 图片可以轻微旋转

方法#1

我试过:

_, contours, hierarchy = cv2.findContours(gray, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
for j, c in enumerate(contours):
cv2.drawContours(imgcolor, [c], 0, COLORS[j % len(COLORS)], thickness=1)

但结果很差:

enter image description here

到目前为止我尝试了什么:

  • 使用 cv2.contourArea(c) 按面积过滤

  • 使用

      shape = cv2.approxPolyDP(c, 0.05 * cv2.arcLength(c, True), closed=True)

    并仅使用 if len(shape) == 4: 保留矩形,但这不会起作用,因为一些正方形被分成两个或三个轮廓:请参见右上角的正方形被识别为红色+青色轮廓

  • 注意:一些正方形通过一个轮廓成功识别,但甚至两个轮廓,所以当我们drawContour时,我们看到两个 strong> 同一个正方形的轮廓在彼此之上

方法#2

是否可以使用原始图像与此“3x2 框模式”的所有“位移 + 旋转 + 重新缩放”版本之间的相关性:

enter image description here

这样可以进行良好的检测吗?

长话短说:

如何可靠地识别此类图像上的 6 个框并找到选中或黑色的框?

最佳答案

这是我的方法:

(1) Threshold and find the external contours

(2) Filter the contour by area and height/width, then distinguish by area occupy.

这是我的结果:

enter image description here

关于python - 如何可靠地找到图像上的复选框(使用 cv2.findContours 或其他技术)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53029817/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com