Les algorithmes de hachage ou de calcul CRC normaux ne fonctionnent pas bien avec les données d'image. La nature dimensionnelle des informations doit être prise en compte.
Si vous avez besoin d'une empreinte digitale extrêmement robuste, de sorte que les transformations affines (mise à l'échelle, rotation, translation, retournement) soient prises en compte, vous pouvez utiliser une transformation Radon sur la source d'image pour produire une cartographie normative des données d'image - stockez-la avec chaque image et puis comparez uniquement les empreintes digitales. C'est un algorithme complexe et pas pour les âmes sensibles.
quelques solutions simples sont possibles:
- Créer un histogramme de luminosité pour l'image sous forme d'empreinte digitale
- Créez des versions réduites de chaque image sous forme d'empreinte digitale
- Combinez les techniques (1) et (2) dans une approche hybride pour une meilleure qualité de comparaison
Un histogramme de luminosité (en particulier celui qui est séparé en composants RVB) est une empreinte digitale raisonnable pour une image - et peut être implémenté assez efficacement. La soustraction d'un histogramme d'un autre produira un nouvel historgramme que vous pourrez traiter pour décider de la similitude de deux images. Les histogrammes, car les seuls évaluent la distribution et l'occurrence des informations de luminosité / couleur gèrent assez bien les transformations affines. Si vous quantifiez les informations de luminosité de chaque composant de couleur jusqu'à une valeur de 8 bits, 768 octets de stockage sont suffisants pour l'empreinte digitale d'une image de presque n'importe quelle taille raisonnable. Les histogrammes de luminosité produisent de faux négatifs lorsque les informations de couleur d'une image sont manipulées. Si vous appliquez des transformations comme le contraste / la luminosité, la postérisation, le changement de couleur, les informations de luminosité changent.
L'utilisation d'images mises à l'échelle est un autre moyen de réduire la densité d'informations de l'image à un niveau plus facile à comparer. Les réductions inférieures à 10% de la taille de l'image d'origine perdent généralement trop d'informations pour être utiles - une image de 800x800 pixels peut donc être réduite à 80x80 tout en fournissant suffisamment d'informations pour effectuer une empreinte digitale décente. Contrairement aux données d'histogramme, vous devez effectuer une mise à l'échelle anisotrope des données d'image lorsque les résolutions source ont des proportions variables. En d'autres termes, la réduction d'une image 300x800 en une vignette 80x80 entraîne une déformation de l'image, de sorte que comparée à une image 300x500 (c'est très similaire), elle provoquera de faux négatifs. Les empreintes digitales miniatures produisent souvent de faux négatifs lorsque des transformations affines sont impliquées. Si vous retournez ou faites pivoter une image,
La combinaison des deux techniques est un moyen raisonnable de couvrir vos paris et de réduire l'apparition de faux positifs et de faux négatifs.