gpt4 book ai didi

python - python opencv 如何检测 ROI 和周围的数字

转载 作者:太空宇宙 更新时间:2023-11-03 22:48:43 25 4
gpt4 key购买 nike

我这里有一张图片:

enter image description here

我想找到问题编号,即:

enter image description here

所以,一般来说,对于正常的形状,我可以对这个家伙使用形状检测或模板匹配:

enter image description here

但是,区域内有数量。

有人知道这种情况吗?

Opencv: 3.2.0

python :2.7.10

编辑 1

这是模板匹配的代码:

#!/usr/bin/env python
import cv2
import numpy as np

img_rgb = cv2.imread('papere1.jpg')
img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)

template = cv2.imread('no.png',0)
#template = cv2.imread('2.jpg',0)
#template = cv2.imread('papere3.jpg',0)
#cv2.imshow('origin',img_rgb)
#cv2.waitKey(0)
w, h = template.shape[::-1]
res = cv2.matchTemplate(img_gray,template,cv2.TM_CCOEFF_NORMED)

threshold = 0.4

loc = np.where( res >= threshold)
print loc
for pt in zip(*loc[::-1]):

cv2.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (0,0,255), 2)

cv2.imshow('Detected',img_rgb)
cv2.waitKey(0)

这是模板png:

enter image description here

但是,只有当我设置阈值 < 0.45 时,target 才会出现,甚至这个 target 也不准确...

编辑2

上面的代码将阈值设置为 0.6,我得到了这个:

enter image description here

所以,看起来不错,但我们可以看到没有达到 6 的目标。而且我认为目标中的数字越多,匹配度越低。

谢谢。

最佳答案

在评论和聊天中进行讨论后,

实现这一目标的步骤如下:

先决条件 - 如果您不想为模板匹配实现金字塔(如果由于矫枉过正而不需要),请确保模板与主图。

第 1 步:使用适当的相关度量运行 cv2.matchTemplate

第 2 步:为正确检测的度量设置适当的阈值。

第 3 步:OP 提到了具有数字的方 block ,因此数字识别来自 here并将轮廓的像素设置为黑色,然后运行 ​​cv2.matchTemplate 应该也能正常工作。

附言。 OP 提到在检测到正方形后进行数字识别,因此这种方法也解决了另一个问题。

关于python - python opencv 如何检测 ROI 和周围的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43232424/

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