GNU/Linux >> Znalost Linux >  >> Linux

Porovnejte dva obrázky způsobem python/linux

Odtud

Nejrychlejším způsobem, jak zjistit, zda mají dva obrázky přesně stejný obsah, je získat rozdíl mezi těmito dvěma obrázky a poté vypočítat ohraničující rámeček nenulových oblastí v tomto obrázku.

Pokud jsou obrázky identické, všechny pixely na rozdílovém obrázku jsou nulové a funkce ohraničujícího rámečku vrátí Žádný.

from PIL import ImageChops


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

Existuje projekt OSS, který používá WebDriver k pořizování snímků obrazovky a poté snímky porovnává, aby zjistil, zda se nevyskytují nějaké problémy (http://code.google.com/p/fighting-layout-bugs/)). Dělá to tak, že otevře soubor do proudu a pak porovná každý bit.

Možná budete schopni udělat něco podobného s PIL.

EDIT:

Po dalším výzkumu jsem našel

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

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


Linux
  1. Instalace PIP nástroje pro balení Pythonu na RHEL 7 Linux

  2. Nejlepší způsob, jak implementovat podporu klávesových zkratek v Linuxu?

  3. Jaký způsob, jak zjistit velikost mezipaměti L1, L2, L3 a RAM v Linuxu?

  1. Nejrychlejší způsob, jak zjistit, zda dva soubory mají stejný obsah v Unixu/Linuxu?

  2. Dvě verze pythonu na linuxu. jak nastavit 2.7 jako výchozí

  3. Jaký je nejjednodušší způsob, jak zjistit stisknutí kláves v pythonu 3 na linuxovém počítači?

  1. Jak upgradovat na Linux Mint 20.3:Správná cesta

  2. Jak porovnat dvě databáze SQLite na Linuxu

  3. Existuje způsob, jak zkontrolovat aktuální rpath v Linuxu?