Questo è un argomento enorme, con risposte da 3 righe di codice a intere riviste di ricerca.
Descriverò le tecniche più comuni e i loro risultati.
Confronto di istogrammi
Uno dei metodi più semplici e veloci. Proposto decenni fa come mezzo per trovare similitudini di immagine. L'idea è che una foresta avrà molto verde e un viso umano molto rosa, o altro. Quindi, se confronti due immagini con le foreste, otterrai una certa similitudine tra gli istogrammi, perché hai molto verde in entrambe.
Unico inconveniente: è troppo semplicistico. Una banana e una spiaggia appariranno uguali, poiché entrambe sono gialle.
Metodo OpenCV: compareHist ()
Corrispondenza del modello
Un buon esempio qui matchTemplate che trova una buona corrispondenza . Convolge l'immagine di ricerca con quella in cui cercare. Di solito viene utilizzato per trovare parti di immagini più piccole in una più grande.
Lati negativi: restituisce solo buoni risultati con immagini identiche, stesse dimensioni e orientamento.
Metodo OpenCV: matchTemplate ()
Corrispondenza delle caratteristiche
Considerato uno dei modi più efficienti per eseguire la ricerca di immagini. Numerose funzioni vengono estratte da un'immagine, in modo da garantire che le stesse funzioni vengano riconosciute di nuovo anche quando ruotate, ridimensionate o inclinate. Le funzioni estratte in questo modo possono essere confrontate con altri set di funzioni immagine. Un'altra immagine che presenta un'alta percentuale delle caratteristiche corrispondenti alla prima è considerata raffigurante la stessa scena.
Trovare l'omografia tra le due serie di punti ti permetterà anche di trovare la differenza relativa nell'angolo di ripresa tra le immagini originali o la quantità di sovrapposizioni.
Ci sono un certo numero di tutorial / esempi OpenCV su questo e un bel video qui . Un intero modulo OpenCV (features2d) è dedicato ad esso.
Lati negativi: potrebbe essere lento. Non è perfetto
Sul sito di domande e risposte di OpenCV sto parlando della differenza tra descrittori di caratteristiche, che sono grandi quando si confrontano immagini intere e descrittori di trama, che vengono utilizzati per identificare oggetti come volti umani o automobili in un'immagine.