La situazione è un po 'unica da tutto ciò che sono stato in grado di trovare già chiesto, ed è la seguente: Se ho scattato una foto di due immagini simili, I' Mi piacerebbe essere in grado di evidenziare le diverse caratteristiche nelle due immagini. Per esempio i seguenti due metà del posto per bambini il gioco differenza:Confronto di immagini simili come fotografie - rilevamento differenza, immagine diff
Le differenze nelle immagini saranno pezzi mancanti/aggiunto e/o cambiamento di colore, e il tipo di differenze che sarebbero facilmente rilevabile dai file di immagine originali facendo niente di più intelligente di un confronto pixel per pixel. Tuttavia, per il fatto che sono soggetti alle fluttuazioni della luce e all'imprecisione della fotografia, avrò bisogno di un algoritmo molto più clemente/intelligente.
Come potete vedere, le immagini non si allineano perfettamente se sovrapposte.
Questa questione è aggiunto indipendente dal linguaggio come mi aspetto risposte che mi puntano verso algoritmi rilevanti, però mi piacerebbe anche essere interessati a implementazioni attuali se esistono, in particolare in Java, Ruby, o C.
Ottima risposta chiara, avrò intenzione di implementare qualcosa in OpenCV questa sera. –
Attenzione che un'omografia è quasi rigida: mappa un piano (in 3d) su un piano (non tiene conto delle deformazioni). Nel tuo esempio sopra, risulterebbe in una semplice traduzione globale a destra. Le omografie sono utilizzate per compensare il movimento della telecamera quando la fotocamera sta guardando una superficie planare. – WhitAngl
Sì, secondo. Nell'esempio corrente, sembra che tu corrisponda a un oggetto planare (il dipinto), quindi dovrebbe essere giusto usare le omografie. Ma se si applica questo metodo a oggetti 3D reali, l'omografia verrà calcolata con l'ipotesi che tutte le caratteristiche si trovino sullo stesso piano, il che a sua volta potrebbe fornire un allineamento imprevisto delle immagini. – Zaphod