0
respostas

Opencv realtime no python

Olá desculpa mas sou novo no opencv e novo no Python nao vou saber explicar da melhor forma mas vamos la

import cv2 as cv
import numpy as np
import os
from PIL import ImageGrab
import pyautogui


while(True):
    printscreen_pil = ImageGrab.grab(bbox = (0, 40, 400, 340))
    printscreen_numpy = np.array(printscreen_pil.getdata(), dtype =
'uint8').reshape((printscreen_pil.size[1], printscreen_pil.size[0], 3))
    cv.imshow('window', printscreen_numpy)
    if cv.waitKey(25) & 0xFF == ord('q'):
        cv.destroyAllWindows()
        break




cv.namedWindow('window', cv.WINDOW_KEEPRATIO)


haystack_img = cv.imread("background.jpg", cv.IMREAD_UNCHANGED)
needle_img = cv.imread('urf.jpg', cv.IMREAD_UNCHANGED)

result = cv.matchTemplate(haystack_img, needle_img, cv.TM_CCOEFF_NORMED)

min_val, max_val, min_loc, max_loc = cv.minMaxLoc(result)

print('Melhor Pixel TOP: %s' % str(max_loc))
print('Melhor Match: %s' % max_val)


threshold = max_val
if max_val >= threshold:
    print('Q -> LUX IDENTIFICADO')

    needle_w = needle_img.shape[1]
    needle_h = needle_img.shape[0]


    top_left = max_loc
    bottom_right = (top_left[0] + needle_w, top_left[1] + needle_h)


    cv.rectangle(haystack_img, top_left, bottom_right,
                    color=(0, 255, 0), thickness=2, lineType=cv.LINE_4)


    cv.imwrite('result.jpg', haystack_img)

else:
    print('Needle not found.')

esse é meu codigo, eu tenho um while pra capturar a tela e depois um codigo todo que não tem haver com capturar tela (ainda), eu consegui fazer com que de um print tirada de um jogo o opencv encontrasse um objeto em especifico, agora queria que ele encontrasse esse objeto mas não da minha print e sim da minha tela que vai estar sendo capturada mas nao sei como juntar os dois codigos que fiz, era algo tipo

haystack_img = cv.imread("MINHA TELA EM TEMPO REAL", cv.IMREAD_UNCHANGED) // Imagem que era pra ser a captura da minha tela ao vivo needle_img = cv.imread('urf.jpg', cv.IMREAD_UNCHANGED) // o pixel que vai ficar procurando e quando achar retornar qualquer coisa um print("success") qualquer coisa pra ajudar a continuar esse codigo