Tarea: Tengo una cámara montada en el extremo de nuestra línea de montaje, que captura imágenes de artículos producidos. Digamos, por ejemplo, que nosotros producimos boletos (con texto e imágenes). Entonces, cada boleto producido es fotografiado y guardado en el disco como imagen. Ahora I desea comprobar estas imágenes guardadas en busca de anomalías (es decir, comparar a una imagen (una plantilla), que está bien). Entonces, si hay un problema con un ticket en nuestra línea de ensamblaje (falta una imagen, una mancha, ...), mi aplicación debería encontrarla (porque su imagen difiere demasiado de mi plantilla ).Comparar imágenes para encontrar las diferencias
Pregunta: ¿Cuál es la forma más fácil de comparar imágenes y encontrar diferencias entre ellas? ¿Debo escribir mis propios métodos, o puedo usar los existentes? Sería muy bueno si me acaba de establecer un valor de tolerancia (es decir, las imágenes pueden diferir de un 1%), poner las dos imágenes en una función y obtener un valor de retorno de verdadero o falso :)
Herramientas: C# o VB. NET, Emgu.CV (contenedor .NET para OpenCV) o algo similar
Hashing es una buena idea, pero el análisis píxel por píxel en la imagen completa no producirá un rendimiento óptimo debido a la gran cantidad de píxeles por imagen (piensa en 1600 * 1200 bytes o 1.875 MB en escala de grises) – sum1stolemyname
Parece al igual que depende de la velocidad del algoritmo utilizado, ya que cualquier algoritmo que se espera que reconozca las diferencias más de 1-2% tendría que iterar sobre el archivo completo de todos modos. Tal vez hacer una resta rápida de las imágenes, y luego sumar los residuos. Eso sería lo más rápido que podría hacerlo mientras sigue examinando toda la imagen. – tloflin