Python PIL | ImageMath.eval() Method

PIL is the Python Imaging Library which provides the python interpreter with image editing capabilities .The module also provides a number of factory functions, including functions to load images from files, and to create new images.

The ImageMath module can be used to evaluate “image expressions”. The module provides a single eval function, which takes an expression string and one or more images.



PIL.ImageMath.eval() Evaluate expression in the given environment.

In the current version, ImageMath only supports single-layer images. To process multi-band images, use the split() method or merge() function.

Syntax: PIL.ImageMath.eval(expression, environment)

Parameters:

expression – A string which uses the standard Python expression syntax. In addition to the standard operators, you can also use the functions described below.
environment – A dictionary that maps image names to Image instances. You can use one or more keyword arguments instead of a dictionary, as shown in the above example. Note that the names must be valid Python identifiers.

Returns type: An image, an integer value, a floating point value, or a pixel tuple, depending on the expression.

Image1 Used:

Image2 Used:

filter_none

edit
close

play_arrow

link
brightness_4
code

   
  
# Importing Image module from PIL package 
from PIL import Image, ImageMath
  
# creating a image object
im1 = Image.open(r"C:\Users\System-Pc\Desktop\ybear.jpg").convert('L'
im2 = Image.open(r"C:\Users\System-Pc\Desktop\leave.jpg").convert('L')
  
# applying the eval method
  
out = ImageMath.eval("convert(min(a, b), 'L')", a = im1, b = im2)
out.save("result.jpg")
out.show()

chevron_right


Output:

Another example:Here we change the inbuilt min() to max().

filter_none

edit
close

play_arrow

link
brightness_4
code

# Importing Image module from PIL package 
from PIL import Image, ImageMath
  
# creating a image object
im1 = Image.open(r"C:\Users\System-Pc\Desktop\ybear.jpg").convert('L'
im2 = Image.open(r"C:\Users\System-Pc\Desktop\leave.jpg").convert('L')
  
# applying the eval method
  
out = ImageMath.eval("convert(max(a, b), 'L')", a = im1, b = im2)
out.save("result.jpg")
out.show()

chevron_right


Output:



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.