GNU/Linux >> Tutoriels Linux >  >> Linux

Comparez deux images à la manière python/linux

D'ici

Le moyen le plus rapide de déterminer si deux images ont exactement le même contenu est d'obtenir la différence entre les deux images, puis de calculer la boîte englobante des régions non nulles de cette image.

Si les images sont identiques, tous les pixels de l'image de différence sont nuls et la fonction de cadre de délimitation renvoie Aucun.

from PIL import ImageChops


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

Il existe un projet OSS qui utilise WebDriver pour prendre des captures d'écran, puis compare les images pour voir s'il y a des problèmes (http://code.google.com/p/fighting-layout-bugs/)). Il le fait en ouvrant le fichier dans un flux, puis en comparant chaque bit.

Vous pourrez peut-être faire quelque chose de similaire avec PIL.

MODIFIER :

Après plus de recherches, j'ai trouvé

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

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


Linux
  1. Installation de PIP l'outil de packaging Python sur RHEL 7 Linux

  2. Comment mettre à niveau vers Linux Mint 20.3 :la bonne manière

  3. Comment comparer deux bases de données SQLite sous Linux

  4. Quel est le moyen le plus simple de détecter les pressions sur les touches en python 3 sur une machine Linux ?

  5. Quel est le moyen le plus rapide de déplacer un million d'images d'un répertoire à un autre sous Linux ?

3 visionneuses d'images CLI pour afficher des images dans le terminal

Comment redimensionner des images à l'aide de Python

Comment comparer deux fichiers dans un terminal Linux

Comprendre les niveaux d'exécution Linux de la bonne façon

EndeavourOS - Apprendre Arch de la bonne façon

Comment puis-je voir la documentation Python sur Linux ?