Gli algoritmi di calcolo hash normale o CRC non funzionano correttamente con i dati di immagine. La natura dimensionale delle informazioni deve essere presa in considerazione.
Se hai bisogno di impronte digitali estremamente robuste, in modo che le trasformazioni affini (ridimensionamento, rotazione, traslazione, flipping) siano prese in considerazione, puoi usare un Radon transformation on the image source per produrre una mappatura normativa dei dati dell'immagine - memorizzarla con ogni immagine e poi confronta solo le impronte digitali. Questo è un algoritmo complesso e non per i deboli di cuore.
alcune soluzioni semplici sono possibili:
- Creare un istogramma di luminosità per l'immagine come un'impronta digitale
- Crea versioni ridimensionate di ogni immagine come un'impronta digitale
- combinate tecnica (1) e (2) in un approccio ibrido per una migliore qualità di confronto
Un istogramma di luminosità (specialmente uno che è separato in componenti RGB) è un'impronta digitale ragionevole per r un'immagine - e può essere implementata in modo abbastanza efficiente. Sottraendo un istogramma da un altro produrrà un nuovo storgram che puoi elaborare per decidere in che modo due immagini simili sono. Gli istogrammi, poiché valutano solo la distribuzione e l'occorrenza di luminosità/colore, gestiscono abbastanza bene le trasformazioni affini. Se si quantizzano le informazioni sulla luminosità di ciascun componente del colore su un valore di 8 bit, 768 byte di spazio di archiviazione sono sufficienti per l'impronta digitale di un'immagine di quasi tutte le dimensioni ragionevoli. Gli istogrammi di luminosità producono falsi negativi quando viene manipolata l'informazione sul colore in un'immagine. Se applichi trasformazioni come contrasto/luminosità, posterizzazione, spostamento del colore, modifica delle informazioni sulla luminosità. I falsi positivi sono anche possibili con certi tipi di immagini ... come paesaggi e immagini in cui un singolo colore domina gli altri.
L'utilizzo di immagini ridimensionate è un altro modo per ridurre la densità di informazioni dell'immagine a un livello più facile da confrontare. Le riduzioni al di sotto del 10% delle dimensioni dell'immagine originale in genere perdono troppe informazioni per essere utilizzate, pertanto un'immagine di 800x800 pixel può ridimensionarsi a 80x80 e fornire comunque informazioni sufficienti per eseguire impronte digitali decenti. A differenza dei dati dell'istogramma, è necessario eseguire il ridimensionamento anisotropico dei dati dell'immagine quando le risoluzioni di origine hanno proporzioni variabili. In altre parole, la riduzione di un'immagine 300x800 in una miniatura 80x80 causa la deformazione dell'immagine, in modo tale che se confrontata con un'immagine 300x500 (che è molto simile) causerà falsi negativi. Anche le impronte digitali delle miniature producono spesso falsi negativi quando sono coinvolte le trasformazioni affini. Se si capovolge o ruota un'immagine, la sua miniatura sarà molto diversa dall'originale e potrebbe risultare in un falso positivo.
La combinazione di entrambe le tecniche è un modo ragionevole per proteggere le proprie scommesse e ridurre l'insorgenza di falsi positivi e falsi negativi.
La lingua dovrebbe essere la biblioteca? –