Los algoritmos de cálculo hash o CRC normales no funcionan bien con datos de imagen. Debe tenerse en cuenta la naturaleza dimensional de la información.
Si necesita una toma de huellas dactilares extremadamente robusta, de modo que se tengan en cuenta las transformaciones afines (escalado, rotación, traslación, volteo), puede usar una transformación de Radon en la fuente de la imagen para producir un mapeo normativo de los datos de la imagen; almacene esto con cada imagen y luego compare solo las huellas dactilares. Este es un algoritmo complejo y no para los débiles de corazón.
son posibles algunas soluciones simples:
- Cree un histograma de luminosidad para la imagen como huella digital
- Cree versiones reducidas de cada imagen como huella digital
- Combine la técnica (1) y (2) en un enfoque híbrido para mejorar la calidad de comparación
Un histograma de luminosidad (especialmente uno que está separado en componentes RGB) es una huella digital razonable para una imagen y puede implementarse de manera bastante eficiente. Restar un histograma de otro producirá un nuevo histórico que puede procesar para decidir qué tan similares son dos imágenes. Histogramas, porque los únicos que evalúan la distribución y ocurrencia de la información de luminosidad / color manejan las transformaciones afines bastante bien. Si cuantifica la información de luminosidad de cada componente de color hasta un valor de 8 bits, 768 bytes de almacenamiento son suficientes para la huella digital de una imagen de casi cualquier tamaño razonable. Los histogramas de luminosidad producen falsos negativos cuando se manipula la información de color de una imagen. Si aplica transformaciones como contraste / brillo, posterizar, cambio de color, cambios en la información de luminosidad.
El uso de imágenes escaladas es otra forma de reducir la densidad de información de la imagen a un nivel que sea más fácil de comparar. Las reducciones por debajo del 10% del tamaño de la imagen original generalmente pierden demasiada información para ser útil, por lo que una imagen de 800x800 píxeles se puede reducir a 80x80 y aún proporcionar suficiente información para realizar una toma de huellas dactilares decente. A diferencia de los datos de histograma, debe realizar un escalado anisotrópico de los datos de la imagen cuando las resoluciones de origen tienen proporciones variables. En otras palabras, reducir una imagen de 300x800 a una miniatura de 80x80 provoca la deformación de la imagen, de modo que cuando se compara con una imagen de 300x500 (que es muy similar) producirá falsos negativos. Las huellas digitales de las miniaturas también suelen producir falsos negativos cuando se trata de transformaciones afines. Si voltea o gira una imagen,
La combinación de ambas técnicas es una forma razonable de cubrir sus apuestas y reducir la aparición de falsos positivos y falsos negativos.