Ok, quindi il programma agisce su screenshot eseguiti su differenti pc. Giusto per chiarire, non parliamo quindi di un confronto della stessa immagine che viene aperta su pc differenti.
Non sono troppo ferrato sull'argomento ma penso ci siano vari punti che fanno acqua.
Una prima cosa: il software si apre in una finestra, e ok; le dimensioni sono quelle, e va bene; ma il software in sé si appoggia al framework del sistema operativo oppure è totalmente indipendente? Cioè gli elementi grafici propri del software sono dipendenti dal sistema operativo oppure no? Se così fosse, non avresti comunque la sicurezza di ottenere lo stesso risultato da pc a pc.
Seconda cosa: nell'esempio che fai, quel numero che viene identificato è, in origine, un elemento di testo? Oppure è già un'immagine?
Se fosse un elemento di testo, il risultato potrebbe essere influenzato dal tipo di font installato sul sistema operativo e utilizzato per tale elemento. Chiaramente i font potrebbero differire a seconda del sistema operativo e/o da eventuali relative personalizzazioni.
Terza cosa: dicci che la variazione è di qualche pixel; se fosse appunto un elemento testuale (ma anche se fosse già un'immagine e tu ne stessi facendo poi lo screenshot), è possibile che ci siano delle impostazioni per l'antialiasing che possono dipendere dal software stesso e/o dall'elemento utilizzato per visualizzare tale testo e/o dalle caratteristiche della scheda grafica (e/o dalle sue eventuali possibili impostazioni) che influiscono sul processo di campionatura (e quindi l'antialiasing) dei pixel che vengono poi mostrati a video. Questo è probabilmente il motivo principale del problema che descrivi.
Anche se tu riuscissi ad utilizzare la stessa configurazione grafica (tema, profilo, o quel che è) per tutti i pc su cui deve girare il software, dal momento che si basa sull'analisi di uno screenshot eseguito relativamente sui differenti pc, non puoi essere certo che ciò che viene restituito graficamente sullo schermo (e quindi catturato sullo screenshot), sia uguale per tutti i vari pc.
Potrei sbagliarmi ma in questo caso credo sia proprio necessario.Siccome vorrei evitare di creare un algoritmo che fa una specie di bruteforce o cerca di "dedurre" cosa ha di fronte perchè 1) potrebbe essere fallace ogni tanto e 2) impiegherebbe troppe risorse e sarebbe veramente pesante.
Eventualmente attendi anche altre risposte.


Rispondi quotando
