Topic: Trovare coordinate di un immagine dentro un immagine  (Letto 100 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline steven94

  • python unicellularis
  • *
  • Post: 2
  • Punti reputazione: 0
    • Mostra profilo
Trovare coordinate di un immagine dentro un immagine
« il: Gennaio 27, 2021, 14:42 »
ciao a tutti,
sono abbastanza nuovo di Python, ma mi applico con dovizia.

Il problema che devo risolvere, credo sia proprio dovuto alla mia poca esperienza

Ho un immagine, che rilevo con pyautogui, la centro e faccio click senza problemi.
Ma poi ho un immagine DENTRO l'immagine che trovo con pyautogui, che devo a mia volta rilevare , centrare , e farci click.
Navigo, mastruzzo, smanetto, provo, arrivo a CV2, scopro con felicità il template e posso cercare dentro un immagine,

mi scorno un po con il bianco e nero/ colore, template.shape ( il maledetto errore notype) insomma, arrivo a far fuzionare lo script senza errori.

O almeno credo.

Perchè scopro che da nessuna parte riesco ( io ) a trovare le coordinate dell'immagine piccola, DENTRO, l'immagine grande , da passare a

p.moveTo ( x, y, 1)  per andare a cliccare sul template trovato nell'immagine grande.

Ora ho anche la testa che fuma, ci ho passato 4 ore, ma non so più a che santo votarmi.

Suggerimenti per cortesia?

ecco lo script fin dove sono arrivato:

 

import cv2

import numpy as np

import os

import pyautogui as p

 

img_rgb = cv2.imread('grande.png')

img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)

template = cv2.imread('piccola.png',0)

w, h = template.shape[::-1]

##print (w,h)

res = cv2.matchTemplate(img_gray,template,cv2.TM_SQDIFF)

threshold = 0.8

loc = np.where( res >= threshold)

for pt in zip(*loc[::-1]):

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

##cv2.imshow('Detected',template)

p.moveTo (non trovo , le coordinate ,1)

Offline steven94

  • python unicellularis
  • *
  • Post: 2
  • Punti reputazione: 0
    • Mostra profilo
Re:Trovare coordinate di un immagine dentro un immagine
« Risposta #1 il: Gennaio 28, 2021, 21:14 »
Ok : usate 2 volte locate image passando le coordinate della prima come regione di ricerca per la seconda.