OpenCV - множественные вхождения одного и того же изображения, но не все из них могут быть найдены, а некоторые являются дубликатами - PullRequest
1 голос
/ 01 мая 2020

Это учебный проект, который я делаю для игры по изучению 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_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 изображения, и я обнаружил только одно.

Я попытался сделать более качественные изображения шаблонов, переключая точность, не исправляя ее. В чем здесь проблема?

...