Ich muss Bilder aus 'Asset' Ordner in Windows 10 kopieren, die Hintergrundbilder automatisch heruntergeladen hat. Einige dieser Bilder werden nie angezeigt und irgendwann gelöscht. Um sicherzustellen, dass ich alle neuen Bilder gesehen habe, bevor sie gelöscht werden, habe ich ein Python-Skript erstellt, das diese Bilder in einen anderen Ordner kopiert. Um effizient zu arbeiten, brauche ich eine Möglichkeit, zwei Bilder zu vergleichen, die nur die neuen kopieren. Alles, was ich tun muss, ist eine Funktion, die zwei Bilder braucht, um sie mit einem einfachen Ansatz zu vergleichen, um sicher zu sein, dass die beiden Bilder nicht visuell identisch sind. Ein einfacher Test wäre, eine Bilddatei zu kopieren und die Kopie und das Original zu vergleichen. In diesem Fall sollte die Funktion erkennen können, dass es sich um dieselben Bilder handelt. Wie kann ich zwei Bilder in Python vergleichen? Ich brauche einen einfachen und effizienten Weg, es zu tun. Einige Antworten, die ich gelesen habe, sind ein bisschen kompliziert.Einfache Möglichkeit, zwei Bilder in Python zu vergleichen
Antwort
traf ich vor ein ähnliches Problem. Ich habe PIL.Image.tobytes() verwendet, um das Bild in ein Byte-Objekt zu konvertieren, dann hash() für das Byte-Objekt aufzurufen und die Hash-Werte zu vergleichen.
Haben Sie aus Ihrer Erfahrung eine Situation festgestellt, in der dies nicht funktioniert hat? – Amani
Nein, ich benutze nur ein paar Screenshots und vergewissere mich, dass ich keine doppelten Kopien mache. Wenn Sie nicht Milliarden von Bildern verarbeiten, werde ich keine Angst vor Kollisionen haben. – user2341726
@Amani Ich empfehle dringend, dass Sie dafür eine kryptografische Hash-Funktion von 'hashlib' verwenden, anstatt den eingebauten' hash', um die Wahrscheinlichkeit von Hash-Kollisionen zu reduzieren. Und es ist wirklich nicht notwendig, 'PIL.Image.tobytes' zu verwenden, es sei denn, Sie haben die Bilddateien in andere Bilddateiformate konvertiert. Verwendet nur die Hashes der Bytes in den Dateien. –
Vergleichen zweier Bilder in Python
Option 1: Verwendung ImageChops Modul, und es enthält eine Reihe von arithmetischen Operationen Bild, genannt Kanaloperationen („zerhackt“). Diese können für verschiedene Zwecke verwendet werden, einschließlich Spezialeffekte, Bildkompositionen, algorithmisches Malen und mehr.
Beispiel:
ImageChops.difference (image1, image2) ⇒ Bild
Gibt den absoluten Wert der Differenz zwischen den beiden Bildern.
out = abs (image1 - image2)
Option 2:
Scikit-image ist ein Bildverarbeitungs Toolbox for SciPy.
Verwenden Sie in scikit-image bitte die compare_ssim bis . Berechnen Sie den mittleren strukturellen Ähnlichkeitsindex zwischen zwei Bildern.
Referenzen:
- 1. Wie zwei Bilder uisng vb.net zu vergleichen?
- 2. einfache Möglichkeit, Bilder in ASP.net von FTP-Server zu zeigen?
- 3. Einfache Möglichkeit, Bilder in einem Wordpress-Beitrag zu finden?
- 4. Wie zwei RGB-Bilder in Qt zu vergleichen?
- 5. Zwei Bilder pixelweise mit PIL vergleichen (Python Imaging Library)
- 6. Python - Schnellere Möglichkeit, mehrere Bilder zu laden?
- 7. Gibt es eine einfache Möglichkeit, Bilder schräg zu stellen?
- 8. Python vergleichen zwei Daten
- 9. Was ist eine einfache Möglichkeit, zwei Datensätze zu vergleichen? Laravel 5.3
- 10. Gibt es eine einfache Möglichkeit zu vergleichen, wie nahe zwei Farben zueinander stehen?
- 11. Effiziente Möglichkeit, Elemente in zwei Listen zu vergleichen?
- 12. Gibt es eine Möglichkeit, zwei RenderedImage in Java zu vergleichen?
- 13. Wie zwei hochgeladene Bilder mit php vergleichen
- 14. Einfache Möglichkeit, Elemente in Eimer zu gruppieren
- 15. Einfache Möglichkeit, Plisten zu verbinden?
- 16. Kann ANOVA verwendet werden, um zwei Bilder zu vergleichen?
- 17. Wie zwei Gesichter in Android zu vergleichen
- 18. Mit grep zwei Listen von Python-Paketen zu vergleichen
- 19. Zwei einfache Fragen über Python
- 20. Bilder in SQL vergleichen
- 21. Python vergleichen zwei CSV-Dateien
- 22. schnellste Möglichkeit, zwei Datentabellen Zelle für Zelle zu vergleichen
- 23. Schnellste Möglichkeit, Pixelwerte zwischen zwei BufferedImages zu vergleichen?
- 24. Schnellste/effizienteste Möglichkeit, zwei String-Arrays zu vergleichen Javascript
- 25. Gibt es eine integrierte Möglichkeit, zwei Iteratoren zu vergleichen?
- 26. Gibt es eine einfache Möglichkeit, zwei System.Drawing.Color-Werte zu mischen?
- 27. Schnelle Möglichkeit, Arrays mit zwei Identifikatoren zu vergleichen (rowIndex, colIndex)
- 28. Vergleichen Sie zwei Arrays auf einfache Weise mit Perl
- 29. Werte von zwei Arrays in Python vergleichen
- 30. Vergleichen von zwei Listen in Python
was meinst du mit "vergleichen"? genau Pixelwert oder ähnliche Bilder mit unterschiedlicher Qualität? – minhhn2910
Und die Vergleichsfunktion muss nur "identisch" oder "anders" zurückgeben? – minhhn2910
Ich nehme an, dass die komplizierten Antworten, die Sie gesehen haben, die tatsächlichen Bilder vergleichen. Du musst das nicht wirklich tun. Sie müssen nur testen, ob zwei Dateien exakt die gleichen Bytes enthalten. Und das ist der einfachste Weg, Hashes dieser Dateien zu vergleichen. Sie könnten zum Beispiel MD5 oder SHA-256 aus dem Standard 'hashlib' Modul verwenden. –