Ich suche nach einem Tool/einer Software, die ein Bild als Beispiel nimmt und meine Festplatte scannt, um ähnliche Bilder zu finden, genau wie Google Bilder im Web.
Muss unter Linux laufen. Siehe Finden visuell ähnlicher Bilder für eine bestimmte Bilddatei (unter Windows) für Windows-Software.
findimagedupes
ist das übliche Kommandozeilenprogramm dafür auf Linux und anderen Unix-Plattformen.
Es sucht nach Ähnlichkeiten zwischen allen Dateien. Sie können die Ausgabe filtern, um nur Informationen zu einer Datei zu behalten, wenn Sie möchten, ich glaube nicht, dass das einen großen Unterschied in der Leistung macht (der langsame Teil scannt alle Dateien).
Führen Sie die folgenden Befehle aus, um PNG- und JPEG-Dateien in einem bestimmten Verzeichnis zu scannen und nur Bilder ähnlich SOMEIMAGE.jpg beizubehalten:
cd /path/to/directory
find . \( -name '*.jpg' -o -name '*.png' \) -print0 |
findimagedupes -0 - |
grep -F 'SOMEIMAGE.jpg'
Wenn Sie das häufig tun, kann findimagedupes Fingerabdrücke von Bildern in einer Datenbank speichern, was die Suche viel schneller macht, sobald die Datenbank aufgebaut ist. Weitere Einzelheiten finden Sie im Handbuch.
Ein bisschen DIY, aber Sie können so etwas mit Python plus entweder OpenCV oder Numpy machen - in beiden Fällen ist der Ansatz derselbe:
Fügen Sie bei Bedarf eine GUI hinzu.
Ich empfehle geeqie
, Sie können über Paketmanager wie sudo apt install geeqie
.
Wie Sie sehen können, kann es nach Pikachus Ohren gruppieren, obwohl die Bilder sehr unterschiedlich sind. Beachten Sie, dass dieses Verzeichnis ~3759 Bilder enthält und ungefähr 5 Minuten dauert, bis es fertig ist.
Wie benutzt man:
cd
zum gewünschten Verzeichnis. Alternativ können Sie zuerst öffnen geeqie
und den Pfad später einfügen.geeqie
, um aktuelle Verzeichnisbilder zu öffnen.[AKTUALISIEREN]
Ich habe gerade ein Python-Skript (nicht verwandt mit geeqie
) geschrieben, um dies zu tun. Dieses Skript verfügt über robuste Optionen, mit denen Sie die Hash-Methode oder die Manhattan-Norm-Methode auswählen, die übereinstimmende/nicht übereinstimmende Ausgabe als symbolischen Link zu einem bestimmten Verzeichnis speichern, eine Datei zwischenspeichern (Sie können mehr als 10000 Bilder in Sekunden vergleichen!) und einen akzeptablen Prozentsatz angeben. Derzeit mache ich es nur unter Linux funktioniert.
geeqie
ist ziemlich gut. Wenn Move to
mich das Dialogfeld nur zum richtigen Arbeitsverzeichnis führen würde, fände ich das nützlich.HINWEIS: Dies funktioniert nicht mehr. Ich konnte es für die meisten Dateien nicht mehr zum Laufen bringen, es scheint, als wäre dieses Tool kaputt.
Es gibt Libpuzzle , das den Vergleichsteil übernimmt, aber nicht die Suche nach allen Bildern. Um es zu installieren, verwenden Sie das Paket libpuzzle-bin
, das Ihnen das Befehlszeilentool zur Verfügung stellt.
Es ist eine Bibliothek und ein Befehlszeilentool, das dazu dient, zwei Bilder zu vergleichen und ihre Ähnlichkeit aufzulisten. Ich habe es vor einiger Zeit verwendet, um Dateien zu finden, die sehr ähnlich waren (Logos), das hat gut funktioniert.
Wenn Sie es verwenden möchten, müssen Sie zusätzliche Software verwenden, die libpuzzle mit den entsprechenden Optionen aufruft.
Ich habe ein Skript geschrieben, das für einen Befehl find -exec verwendet werden kann. Das Skript geht so (ich habe es in einer Datei namens simple-pd.sh
):
#!/bin/bash
if (( $(echo "0.80<`puzzle-diff \"$1\" \"$2\"`" | bc -l) )) ; then
exit 0
fi
exit 1
es wird so aufgerufen:
find . -regex ".*jpg\|.*gif\|.*png" -exec ./simple-pd.sh MYIMAGE {} \; -print
wo Sie MYIMAGE durch das Bild ersetzen, auf dem Sie den Vergleich haben möchten. Das Skript benötigt Ausführungsrechte ( chmod +x simple-pd.sh
)
Das Tool (zusammen mit den Skripten hier) wird die meiste Zeit tun, was Sie wollen.
Obwohl ich das Tool mag, hat es seine Nachteile. Es kann nicht alle Dateien lesen (ich hatte manchmal Probleme mit jpgs) und ist irritierend, wenn es fehlschlägt.
Die Parameter dafür puzzle-diff
sind kaum dokumentiert, Sie müssen einige Bilder testen, die Sie haben möchten, und einige, die Sie nicht haben, um zu sehen, welche für Ihre Aufgabe am besten geeignet sind.
Mein Skript geht davon aus, dass ein sehr ähnliches Bild (0,80) als JA und der Rest als NEIN gemeldet werden soll. Möglicherweise möchten Sie diese Anzahl reduzieren, um sie Ihren Anforderungen anzupassen.
dupeGuru PE . Außerdem ist es Open Source. :)
dupeGuru Picture Edition (kurz PE) ist ein Tool, um doppelte Bilder auf Ihrem Computer zu finden. dupeGuru PE ist ein großer Bruder von dupeGuru. Es funktioniert wie dupeGuru, ist aber auf den Abgleich doppelter Bilder spezialisiert. dupeGuru PE läuft auf Windows, Mac OS X und Linux.
dupeGuru PE ist effizient. dupeGuru PE kann nicht nur exakte Übereinstimmungen finden, sondern auch Duplikate zwischen Bildern unterschiedlicher Art (PNG, JPG, GIF usw.) und Qualität finden. Unter Mac OS X kann dupeGuru PE Ihre iPhoto-Bibliothek scannen.
dupeGuru PE ist anpassbar. Sie können die Matching-Engine optimieren, um genau die Art von Duplikaten zu finden, die Sie finden möchten. Auf der Einstellungsseite der Hilfedatei sind alle Scan-Engine-Einstellungen aufgelistet, die Sie ändern können.
dupeGuru PE ist sicher. Sein Motor wurde speziell auf Sicherheit ausgelegt. Sein Referenzverzeichnissystem sowie sein Gruppierungssystem verhindern, dass Sie Bilder löschen, die Sie nicht löschen wollten.
Vergleichen Sie beliebige Bildformate. dupeGuru PE unterstützt die Formate JPG, PNG, TIFF, GIF und BMP. Alle diese Formate können miteinander verglichen werden. Die Mac OS X-Version von dupeGuru PE unterstützt auch die Formate PSD und RAW (CR2 und NEF).
Ihre iPhoto- und Aperture-Bibliotheken werden unterstützt.
Machen Sie mit Ihren Duplikaten, was Sie wollen. Sie können doppelte Dateien, die dupeGuru findet, nicht nur löschen, sondern sie auch an einen anderen Ort verschieben oder kopieren. Es gibt auch mehrere Möglichkeiten, Ihre Ergebnisse zu filtern und zu sortieren, um falsche Duplikate einfach auszusortieren (für Scans mit niedriger Schwelle).
(Antwort ist kopiert von https://superuser.com/questions/311633/free-visual-similarity-image-for-a-local-hard-drive-search/453251#453251 – alle Kredite an Pat auf SuperUser )
Versuchen Sie es mit der Bildsuche auf der Festplatte . Es ist ein browserbasiertes (Linux, Windows, Mac usw.) Programm, das ich entwickelt habe. Funktioniert am besten mit Chrome und Firefox, da andere Browser die Ordnerauswahl möglicherweise nicht unterstützen. Sie können das Programm offline verwenden, indem Sie die Webseite herunterladen und auf Port 8080 hosten, da es keine Serververarbeitung der Bilder beinhaltet.
Benutzer6306
Gilles 'SO- hör auf, böse zu sein'
Benutzer6306
Pkt
findimagedupes
funktioniert für mich wie ein Zauber, hier ist die Dokumentation: manpages.ubuntu.com/manpages/precise/man1/…jhnc
-a
Option können Sie Ihre Datenbank einfach auf Treffer mit einer kurzen Liste von Dateien überprüfen, was schneller geht, als sie alle zu überprüfen - so etwas wie O(m*n) für m neue Dateien und n in der Datenbank statt O(n^2).Milahu
findimagedupes.pl
, nicht zu verwechseln mitfindimagedupes.go
"das einen anderen Hash-Algorithmus verwendet" .