Python OpenCV-同一图像的多次出现,但可以';我找不到所有的,有些是重复的
这是一个训练项目,我正在做一个游戏,学习一些OpenCV 所以我有这个 ,此图像和此代码:Python OpenCV-同一图像的多次出现,但可以';我找不到所有的,有些是重复的,python,opencv,opencv3.0,opencv-python,Python,Opencv,Opencv3.0,Opencv Python,这是一个训练项目,我正在做一个游戏,学习一些OpenCV 所以我有这个 ,此图像和此代码: from time import sleep import pyautogui import cv2 from tkinter import Tk import re img_rgb = pyautogui.screenshot() img_rgb = np.array(img_rgb) img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRA
from time import sleep
import pyautogui
import cv2
from tkinter import Tk
import re
img_rgb = pyautogui.screenshot()
img_rgb = np.array(img_rgb)
img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
template = cv2.imread("template.png", 0)
w, h = template.shape[::-1]
res = cv2.matchTemplate(img_gray, template, cv2.TM_CCOEFF_NORMED)
precision=0.85
loc = np.where(res >= precision)
count = 0
total_currency=0
for pt in zip(*loc[::-1]): # Swap columns and rows
cv2.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (0, 0, 255), 2)
center_x=pt[0]+w/2
center_y=pt[1]+h/2
count+=1
total_currency+=get_stack() # function to get the sum of the numbers. In this case 4,10,5,10. No openCV is used here
cv2.imwrite('res.png',img_rgb)
print("Found",count,"Total currency: ",total_currency)
这是输出:
4
4
10
5
Found 4 Total currency: 23
和
.问题是它检测到两次4图像,一次是10图像,一次是5图像。我甚至不明白为什么,因为我有两张完全相同的10张图片,只检测到一张
我试着拍摄更好的模板照片,在不固定的情况下切换精度。这里的问题是什么?很多时候,绘制
res
响应面都很有帮助。这有助于调试。您可能应该执行某种非最大值抑制。寻找示例实现。您的模板与其他部分太相似。它看起来像输入中区域的顶部,但它也会以较高的值匹配底部。如果使用与输入中非黑色图标相同大小的模板,可能会获得更好的匹配结果。此外,如果您使用想要检测的单元格的完整大小作为模板来掩盖黑色部分,它可能会提供更好的结果。很多时候,它有助于绘制res
响应面。这有助于调试。您可能应该执行某种非最大值抑制。寻找示例实现。您的模板与其他部分太相似。它看起来像输入中区域的顶部,但它也会以较高的值匹配底部。如果使用与输入中非黑色图标相同大小的模板,可能会获得更好的匹配结果。此外,如果使用要检测的单元格的完整大小作为模板来遮罩黑色部分,则可能会获得更好的结果。