Este es un tema enorme, con respuestas de 3 líneas de código a revistas de investigación completas.
Voy a describir las técnicas más comunes y sus resultados.
Comparación de histogramas
Uno de los métodos más simples y rápidos. Propuesto hace décadas como un medio para encontrar similitudes de imágenes. La idea es que un bosque tendrá mucho verde y una cara humana mucho rosa, o lo que sea. Entonces, si compara dos imágenes con bosques, obtendrá una similitud entre los histogramas, porque tiene mucho verde en ambos.
Desventaja: es demasiado simplista. Un plátano y una playa se verán iguales, ya que ambos son amarillos.
Método OpenCV: compareHist ()
Comparación de plantillas
Un buen ejemplo aquí matchTemplate encuentra una buena coincidencia . Convoluciona la imagen de búsqueda con la que se está buscando. Por lo general, se usa para encontrar partes de imágenes más pequeñas en una más grande.
Desventajas: solo devuelve buenos resultados con imágenes idénticas, mismo tamaño y orientación.
Método OpenCV: matchTemplate ()
Coincidencia de funciones
Considerada una de las formas más eficientes de hacer búsquedas de imágenes. Se extraen varias características de una imagen, de manera que garantiza que las mismas características se reconocerán nuevamente incluso cuando se rotan, escalan o se sesgan. Las características extraídas de esta manera pueden compararse con otros conjuntos de características de imagen. Se considera que otra imagen que tiene una alta proporción de las características que coinciden con la primera representa la misma escena.
Encontrar la homografía entre los dos conjuntos de puntos le permitirá también encontrar la diferencia relativa en el ángulo de disparo entre las imágenes originales o la cantidad de superposición.
Hay una serie de tutoriales / ejemplos de OpenCV sobre esto, y un buen video aquí . Todo un módulo OpenCV (features2d) está dedicado a él.
Desventajas: puede ser lento. No es perfecto
En el sitio de preguntas y respuestas de OpenCV , estoy hablando de la diferencia entre los descriptores de características, que son geniales al comparar imágenes completas y descriptores de textura, que se utilizan para identificar objetos como rostros humanos o automóviles en una imagen.