[PYTHON] Ist es möglich, ähnliche Bilder nur mit ImageHash zu erkennen?

Einführung

ImageHash hat einen Brummabstand von ** 0 ** für dasselbe Bild und ** 1 bis 10 ** für möglicherweise ähnliche Bilder. Bestätigen Sie erneut, ob ähnliche Bilder nur mit ImageHash erkannt werden können.

Quellcode

Hash benutzt Dhush.

Referenz: https://tech.unifa-e.com/entry/2017/11/27/111546

sample.py


import imagehash
from PIL import Image

hash1 = imagehash.dhash(Image.open('./images/001.png'))
hash2 = imagehash.dhash(Image.open('./images/002.png'))
hash3 = imagehash.dhash(Image.open('./images/003.png'))

print(hash1, hash2, hash3)

print('001.png:002.png - {}'.format(hash1 - hash2))
print('001.png:003.png - {}'.format(hash1 - hash3))
print('002.png:003.png - {}'.format(hash2 - hash3))

Bild verwendet

Die folgenden Bilder werden in diesem Programm verwendet. 002.png und 003.png wählen ähnliche Bilder, 001.png hat eine andere Pose, aber die Komposition mit dem Charakter in der Mitte ist dieselbe.

1 2 3
001.png 002.png 003.png
001.png 002.png 003.png

Ausführungsergebnis

Die Brummabstände von 001.png und anderen Bildern betragen 16 bzw. 12, was sehr unterschiedlich ist. Der Brummabstand beträgt 8 für 002.png und 003.png. Normalerweise sind "1 bis 10" möglicherweise ähnliche Bilder, aber da es sich um völlig unterschiedliche Bilder handelt, kann davon ausgegangen werden, dass sie falsch positiv sind. Wie in Neulich veröffentlicht erwähnt, kann gesagt werden, dass es schwierig ist, ähnliche Bilder nur mit Bild-Hash zu beurteilen.

3868e0f870706979 a269e8e8f0f4f070 b860e0e8f1f0f070
001.png:002.png - 16
001.png:003.png - 12
002.png:003.png - 8

Recommended Posts

Ist es möglich, ähnliche Bilder nur mit ImageHash zu erkennen?
Immerhin ist es falsch, mit Python-Subprozess zu katzen.
Aktiviert, um PNG mit Pillow of Python in JPG zu konvertieren
Wenn es schwierig ist, das zu kopieren, was Sie mit vue erstellt haben
Ich habe versucht herauszufinden, ob ReDoS mit Python möglich ist
Ist es möglich, ein Pre-Listing-Unternehmen zu gründen und mit Aktienoptionen ein Vermögen zu machen?
Ist es möglich, eine Schleifenstruktur mit einer Person aufzubauen, deren Name der Stadt und des Bürgermeisters verwirrend sind?
Ich habe versucht, Deep Learning zu implementieren, das nicht nur mit NumPy tiefgreifend ist
Wenn Sie es so verwenden möchten, wie es ist, wenn Sie es mit Lambda-Memo verwenden
Es ist besser, den Weight Initializer zu verwenden, wenn Sie mit HeNormal mit Chainer initialisieren
Ist es möglich, mit Aktienkursvorhersage durch maschinelles Lernen zu essen [Maschinelles Lernen Teil 1]
Lesen Sie die CSV-Datei mit Python und konvertieren Sie sie unverändert in DataFrame
Ist es möglich, die Profilinformationen der Person aus dem Chat-Protokoll zu extrahieren?
Ich möchte Objekte mit OpenCV erkennen
Wird nicht empfohlen, pip direkt zu verwenden?
Lernen Sie mit Chainer, monochrome Bilder einzufärben
Python nur mit Hallo, Welten zu erinnern
Fügen Sie mit Pythonista Bilder zu iOS-Fotos hinzu
Fügen Sie Bildern mit Python2.7 Gaußsches Rauschen hinzu
Laden Sie Bilder mit Python auf Google Drive hoch
Es ist bequemer, csv-table zu verwenden, wenn Sie eine Tabelle mit Python-Sphinx schreiben
[OpenCV] Wenn Sie überprüfen möchten, ob es mit imread richtig gelesen wird
Ist es möglich, mit Aktienkursprognose durch maschinelles Lernen zu essen [Umsetzungsplan]