Se confronti tutti i pixel l'elaborazione è lenta, questo è ovvio.
Io ti suggerisco di prendere dei 'campioni' di pixel, piuttosto che elaborare tutti i pixel.
Anni fa ho seguito questo metodo quando dovevo 'catturare' dal web i fotogrammi da uno streaming video. Avendo una connessione telefonica dial-up da pochi kb non potevo né temporizzare la cattura, né stare davanti al monitor per catturarli una alla volta.![]()
In questo modo catturavo il fotogramma solo quando cambiava e lo salvavo 'al volo' in bmp, poi alla fine mi ricrevo il filmato AVI grazie alle immagini salvate.
La scelta di quanti e quali campioni utilizzare dipende dal risultato che si cerca, ovvero che livello di precisione mi occorre.
Ad esempio, suddividendo 'logicamente' i fotogrammi in 9 rettangoli 3x3 (o più... scegli tu) puoi selezionare ad esempio 3 pixel da 5 rettangoli (vedi schema sotto) per un totale di 18 pixel che confronterai tra i due fotogrammi.
E' abbastanza improbabile che cambi un fotogramma senza che almeno uno di questi pixel cambi anch'esso.
Naturalmente dopo qualche prova potrai verificare se devi aumentare i rettangoli anzichè i 5 indicati nell'asterisco, e se per ogni rettangolo aumentari il numero di pixel da catturare.codice:------------------- | * | | * | ------------------- | | * | | ------------------- | * | | * | -------------------
Sicuramente è assai più veloce che non leggere tutti i pixels.![]()
![]()

Rispondi quotando