The statistic() function is an inbuilt function in the Python Wand ImageMagick library which is used to replace each pixel with the statistic results from neighboring pixel values. The width & height defines the size, or aperture, of the neighboring pixels.
Syntax:
statistic(stat, width, height, channel)Parameters: This function accepts four parameters as mentioned above and defined below:
- stat: This parameter stores the type of statistic to calculate. Some of the available statistics are ‘undefined’, ‘gradient’, ‘maximum’, ‘mean’, ‘median’, ‘minimum’, ‘mode’, ‘nonpeak’, ‘root_mean_square’, ‘standard_deviation’.
- width: This parameter stores the size of neighboring pixels on the X-axis.
- height: This parameter stores the size of neighboring pixels on the Y-axis.
- channel: This parameter stores the available color channel.
Return Value: This function returns the Wand ImageMagick object.
Original Image:
Example 1:
Python3
# Import library from Image from wand.image import Image
# Import the image with Image(filename = '../geeksforgeeks.png' ) as image:
# Clone the image in order to process
with image.clone() as statistic:
# Invoke statistic function with statistic as median, width as 20
# height as 10, channel as 'yellow'
statistic.statistic( 'median' , 20 , 10 , 'yellow' )
# Save the image
statistic.save(filename = 'statistic1.jpg' )
|
Output:
Example 2:
Python3
# Import libraries from the wand from wand.image import Image
from wand.drawing import Drawing
from wand.color import Color
with Drawing() as draw: # Set Stroke color the circle to black
draw.stroke_color = Color( 'black' )
# Set Width of the circle to 2
draw.stroke_width = 1
# Set the fill color to 'White (# FFFFFF)'
draw.fill_color = Color( 'white' )
# Invoke Circle function with center at 50, 50 and radius 25
draw.circle(( 200 , 200 ), # Center point
( 100 , 100 )) # Perimeter point
# Set the font style
draw.font = '../Helvetica.ttf'
# Set the font size
draw.font_size = 30
with Image(width = 400 , height = 400 , background = Color( '# 45ff33' )) as pic:
# Set the text and its location
draw.text( int (pic.width / 3 ), int (pic.height / 2 ), 'GeeksForGeeks !' )
# Draw the picture
draw(pic)
# Invoke statistic function with statistic as root_mean_square, width as 20
# height as 10, channel as 'green'
pic.statistic( 'root_mean_square' , 20 , 10 , 'green' )
# Save the image
pic.save(filename = 'statistic2.jpg' )
|
Output: