Pillow ImageStat Module

ImageStat is specifically used to calculate image statistical information.

ImageStat is part of the Pillow library (a fork of PIL) and provides functionality for statistical analysis of image pixel data.

The main functions of this module are:

  • Calculate statistical features of an image or image region
  • Obtain statistics such as mean, median, and standard deviation of pixel values
  • Support analysis of single-channel and multi-channel images

Import method:

from PIL import Image, ImageStat

Main Methods of the ImageStat Module

The following table lists the most commonly used methods of the ImageStat module and their functional descriptions:

Method Name Parameters Return Value Description
ImageStat.Stat(image) image: Image object Stat instance Creates an image statistics object and computes basic statistical information of the image
mean None Tuple (mean of each channel) Returns the mean pixel value for each channel of the image
median None Tuple (median of each channel) Returns the median pixel value for each channel of the image
rms None Tuple (RMS of each channel) Returns the root mean square (RMS) of pixel values for each channel of the image
var None Tuple (variance of each channel) Returns the variance of pixel values for each channel of the image
stddev None Tuple (standard deviation of each channel) Returns the standard deviation of pixel values for each channel of the image
extrema None Tuple (extrema of each channel) Returns the minimum and maximum pixel values for each channel of the image
count None Tuple (pixel count of each channel) Returns the pixel count for each channel of the image
sum None Tuple (sum of each channel) Returns the sum of pixel values for each channel of the image
sum2 None Tuple (sum of squares of each channel) Returns the sum of squared pixel values for each channel of the image

Usage Examples

Basic Usage

Example

from PIL import Image, ImageStat

# Open the image file
image = Image.open("example.jpg")

# Create a statistics object
stats = ImageStat.Stat(image)

# Get statistical information
print("Mean:", stats.mean)
print("Median:", stats.median)
print("Standard deviation:", stats.stddev)

Analyzing Specific Channels

Example

# Analyze only the red channel (channel 0 of an RGB image)
red_channel = image.getchannel(0)
red_stats = ImageStat.Stat(red_channel)

print("Red channel mean:", red_stats.mean[0])
print("Red channel extrema:", red_stats.extrema[0])

Practical Application Scenarios

Image Quality Assessment

By analyzing the statistical characteristics of an image, quality metrics such as brightness and contrast can be evaluated.

Image Preprocessing

Before machine learning or computer vision tasks, ImageStat is commonly used to standardize image data.

Image Comparison

By comparing the statistical features of two images, their similarity can be quickly determined.


Notes

  1. ImageStat computes global statistics; for regional statistics, crop the image first
  2. For large images, statistical calculations may be time-consuming
  3. Statistical results for multi-channel images are returned as tuples, with the order matching the image mode
  4. Some statistical methods (such as median) have high computational costs

By mastering the ImageStat module, you can easily obtain various statistical features of images, providing data support for image processing and analysis.

Other Extensions