Jul 03, 2024

Wiki

Python

Aide

edit SideBar

Search

Image Math

Le module ImageMath peut être utilisé pour évaluer des "expressions sur image". Ce module ne fournis qu'une fonction, eval, qui reçoit une chaîne de caractères et au moins une image.

Exemple

  >>> import Image, ImageMath

  >>> im1 = Image.open("image1.jpg")
  >>> im2 = Image.open("image2.jpg")

  >>> out = ImageMath.eval("convert(min(a, b), 'L')", a=im1, b=im2)
  >>> out.save("result.png")

La méthode eval

eval(expression, environment) => image, ou valeur
Evalue l'expression dans l'environnement donné.
expression est une chaîne de caractères qui contient une expression Python, contenant des opérateurs classiques ou des fonctions détaillées ci-dessous.

L'argument environment est un dictionnaire qui mappe les noms d'image en objet Image. Il peut être utilisé un (ou plusieurs) mot-clé(s) au lieu d'un dictionnaire (voir l'exemple ci-dessous).

Actuellement, le module ImageMath n'accepte que des images simple-bande. Pour agir sur des images multi-bandes, utiliser les méthodes split et merge.

La fonction eval renvoie une image, un entier, un réel ou un pixe, selon l'expression.

Syntaxe de l'expression

Les expressions dont il est question ici sont les expressions standard de Python, mais qui sont réévaluées dans un cadre non standard. Il est ici possible d'utiliser les méthodes PIL, ainsi que les fonctions et opérateurs suivants :

Opérateurs standard

Les opérateurs binaires +, -, * et / peuvent être utilisés, ainsi que le moins unaire(-), le modulo (%) et la puissance (**). Toutes ces opérations sont faites avec 32 bits (que ce soit des valeurs entières ou réelles).

La conversion peut être forcée (voir les fonctions convert, float et int ci-dessous).

Opérateurs sur les bits

Ce module fournis aussi des fonctions qui opèrent sur les bits : le et (&), le ou (|), et le ou exclusif (^). On peut aussi nier (~).

Les opérandes sont convertis en entiers signés 32 bits, avant d'effectuer l'opération : une valeur négative est retournée dans le cas de la négation d'une image en niveaux de gris, par exemple. Le et (&) peut être utilisé pour masquer les bits non souhaités.

Opérateurs logiques

Les opérateurs logiques, tels and, or et not opèrent sur toute l'image, plutôt que sur chaque pixel.

Une image vide (tous les pixels à zéro) est considérée comme False, toute autre image comme True.

and et or renvoient le dernier opérande évaleué, quand not retourne toujours un booléen.

Méthodes

Les fonctions suivantes sont appliquées à chaque pixel.

abs(image)
La valeur absolue.
convert(image, mode)
Convertis l'image vers le mode donné en argument.
float(image)
Convertos l'image en réels 32 bits (équivalent à convert(image, "F")).
int(image)
Convertis l'image en entiers 32 bits (équivalent à convert(image, "I")).

Les images 1 bit et 8 bits sont automatiquement converties en 32 bits, si nécessaire.

max(image1, image2)
La valeur maximale.
min(image1, image2)
Le minimum.

Page Actions

Recent Changes

Group & Page

Back Links