GNU/Linux >> Linux Esercitazione >  >> Linux

Confronta due immagini in modo python/linux

Da qui

Il modo più rapido per determinare se due immagini hanno esattamente gli stessi contenuti è ottenere la differenza tra le due immagini e quindi calcolare il riquadro di delimitazione delle regioni diverse da zero in questa immagine.

Se le immagini sono identiche, tutti i pixel nell'immagine di differenza sono pari a zero e la funzione del riquadro di delimitazione restituisce Nessuno.

from PIL import ImageChops


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

Esiste un progetto OSS che utilizza WebDriver per acquisire schermate e quindi confronta le immagini per vedere se ci sono problemi (http://code.google.com/p/fighting-layout-bugs/)). Lo fa aprendo il file in un flusso e quindi confrontando ogni bit.

Potresti riuscire a fare qualcosa di simile con PIL.

MODIFICA:

Dopo ulteriori ricerche ho trovato

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))

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


Linux
  1. Installazione di PIP lo strumento di packaging Python su RHEL 7 Linux

  2. Come eseguire l'aggiornamento a Linux Mint 20.3:il modo giusto

  3. Il modo migliore per implementare il supporto dei tasti di scelta rapida in Linux?

  4. Qual è il modo per conoscere le dimensioni della cache L1, L2, L3 e della RAM in Linux?

  5. Come confrontare due database SQLite su Linux

3 visualizzatori di immagini CLI per visualizzare le immagini nel terminale

Come ridimensionare le immagini usando Python

Come confrontare due file nel terminale Linux

Comprendere i runlevel di Linux nel modo giusto

EndeavourOS – Impara Arch nel modo giusto

Come posso vedere il documento Python su Linux?