GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Vergleichen Sie zwei Bilder auf Python/Linux-Weise

Von hier

Der schnellste Weg, um festzustellen, ob zwei Bilder genau denselben Inhalt haben, besteht darin, die Differenz zwischen den beiden Bildern zu ermitteln und dann den Begrenzungsrahmen der Nicht-Null-Bereiche in diesem Bild zu berechnen.

Wenn die Bilder identisch sind, sind alle Pixel im Differenzbild Null und die Begrenzungsrahmenfunktion gibt None zurück.

from PIL import ImageChops


def equal(im1, im2):
    return ImageChops.difference(im1, im2).getbbox() is None

Es gibt ein OSS-Projekt, das WebDriver verwendet, um Screenshots zu machen und dann die Bilder vergleicht, um zu sehen, ob es Probleme gibt (http://code.google.com/p/fighting-layout-bugs/)). Dazu wird die Datei in einem Stream geöffnet und dann jedes Bit verglichen.

Möglicherweise können Sie mit PIL etwas Ähnliches tun.

BEARBEITEN:

Nach mehr Recherche fand ich

h1 = Image.open("image1").histogram()
h2 = Image.open("image2").histogram()

rms = math.sqrt(reduce(operator.add,
    map(lambda a,b: (a-b)**2, h1, h2))/len(h1))

auf http://snipplr.com/view/757/compare-two-pil-images-in-python/ und http://effbot.org/zone/pil-comparing-images.htm


Linux
  1. Installation von PIP, dem Python-Paketierungstool, unter RHEL 7 Linux

  2. So aktualisieren Sie auf Linux Mint 20.3:Der richtige Weg

  3. Der beste Weg, Hotkeys-Unterstützung in Linux zu implementieren?

  4. Was ist der schnellste Weg, zwei oder mehr Dateien in Linux zu kombinieren?

  5. Was ist der schnellste Weg, um unter Linux eine Million Bilder von einem Verzeichnis in ein anderes zu verschieben?

3 CLI-Bildbetrachter zum Anzeigen von Bildern im Terminal

So ändern Sie die Größe von Bildern mit Python

So vergleichen Sie zwei Dateien im Linux-Terminal

Linux-Runlevels richtig verstehen

EndeavourOS – Lerne Arche richtig

Wie sehe ich das Python-Dokument unter Linux?