Compito: Ho una telecamera montata all'estremità della nostra catena di montaggio, che acquisisce le immagini degli articoli prodotti. Diciamo per esempio che noi produciamo biglietti (con testo e immagini su di essi). Quindi ogni biglietto prodotto da viene fotografato e salvato su disco come immagine. Ora I vorrebbe controllare queste immagini salvate per le anomalie (cioè confrontare con un'immagine (un modello), che è OK). Quindi, se c'è un problema con un biglietto sulla nostra catena di montaggio (immagine mancante, una macchia, ...), la mia applicazione dovrebbe trovarla (perché la sua immagine differisce troppo dal mio modello ).Confronta le immagini per trovare le differenze
Domanda: Qual è il modo più semplice per confrontare le immagini e trovare le differenze tra di loro? Devo scrivere i miei metodi, oppure posso usare quelli esistenti per ? Sarebbe bello se ho appena impostato un valore di tolleranza (vale a dire immagini possono differire per 1%), mettere entrambe le immagini in una funzione e ottenere un valore di ritorno di vere o false :)
Strumenti: C# o VB. NET, Emgu.CV (.NET wrapper per OpenCV) o qualcosa di simile
L'hash è una buona idea, ma l'analisi pixel per pixel sull'intera immagine non produrrà prestazioni ottimali a causa della quantità di pixel per immagine (si pensi a 1600 * 1200 byte o 1.875 MB in scala di grigi) – sum1stolemyname
Sembra come se dipendesse dalla velocità dell'algoritmo utilizzato, poiché qualsiasi algoritmo che avrebbe dovuto riconoscere differenze superiori all'1-2% avrebbe comunque dovuto scorrere l'intero file. Forse fare una rapida sottrazione delle immagini, quindi sommare i resti. Sarebbe più veloce che potreste fare continuando a esaminare l'intera immagine. – tloflin