Open In App

Python PIL | ImageMath.eval() Method

Improve
Improve
Like Article
Like
Save
Share
Report

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:




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


Output:

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




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


Output:



Last Updated : 19 Jul, 2019
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads