Skip to content

ImageStat

ImageStat.Stat(image, mask=None) computes per-band statistics from an 8-bit image. A nonzero L mask selects pixels. You can also pass a precomputed histogram with 256 nonnegative integer bins per band, each at most 2**64 - 1.

Properties Meaning
extrema, count, sum, sum2 Range and totals
mean, median, rms Central values
var, stddev Spread
from blanket import ImageStat

statistics = ImageStat.Stat(image)
average_channels = statistics.mean

Properties are calculated on demand and cached. ImageStat.Global is an alias for Stat.

Reference

Stat

Stat(image_or_list: Image | list[int], mask: Image | None = None)

Calculate statistics from an 8-bit image or a list of histogram counts.

A mask selects pixels with any nonzero L value. Histograms contain 256 nonnegative integer counts per band, each fitting in an unsigned 64-bit integer. Results are computed lazily and cached, as in Pillow.

Configure Stat.

Parameters:

Name Type Description Default
image_or_list Image | list[int]

An 8-bit image or a histogram with 256 nonnegative integer counts per band.

required
mask Image | None

Optional mask selecting pixels. Histogram operations require an L mask; compositing also accepts RGBA alpha.

None

Examples:

from blanket import Image, ImageStat

image = Image.new("RGB", (8, 8), (40, 100, 180))
statistics = ImageStat.Stat(image)
print(statistics.mean)

bands cached property

bands: list[int]

Band indices, materialized only when requested.

Examples:

from blanket import Image, ImageStat

image = Image.new("RGB", (8, 8), (40, 100, 180))
statistics = ImageStat.Stat(image)
print(statistics.bands)

extrema cached property

extrema: list[tuple[int, int]]

Lowest and highest occupied bin per band; (255, 0) if empty.

Examples:

from blanket import Image, ImageStat

image = Image.new("RGB", (8, 8), (40, 100, 180))
statistics = ImageStat.Stat(image)
print(statistics.extrema)

count cached property

count: list[int]

Number of selected pixels in each band.

Examples:

from blanket import Image, ImageStat

image = Image.new("RGB", (8, 8), (40, 100, 180))
statistics = ImageStat.Stat(image)
print(statistics.count)

sum cached property

sum: list[float]

Sum of pixel values in each band.

Examples:

from blanket import Image, ImageStat

image = Image.new("RGB", (8, 8), (40, 100, 180))
statistics = ImageStat.Stat(image)
print(statistics.sum)

sum2 cached property

sum2: list[float]

Sum of squared pixel values in each band.

Examples:

from blanket import Image, ImageStat

image = Image.new("RGB", (8, 8), (40, 100, 180))
statistics = ImageStat.Stat(image)
print(statistics.sum2)

mean cached property

mean: list[float]

Arithmetic mean in each band, or zero for empty bands.

Examples:

from blanket import Image, ImageStat

image = Image.new("RGB", (8, 8), (40, 100, 180))
statistics = ImageStat.Stat(image)
print(statistics.mean)

median cached property

median: list[int]

Upper median in each band, or 255 for empty bands.

Examples:

from blanket import Image, ImageStat

image = Image.new("RGB", (8, 8), (40, 100, 180))
statistics = ImageStat.Stat(image)
print(statistics.median)

rms cached property

rms: list[float]

Root mean square in each band, or zero for empty bands.

Examples:

from blanket import Image, ImageStat

image = Image.new("RGB", (8, 8), (40, 100, 180))
statistics = ImageStat.Stat(image)
print(statistics.rms)

var cached property

var: list[float]

Population variance in each band, or zero for empty bands.

Examples:

from blanket import Image, ImageStat

image = Image.new("RGB", (8, 8), (40, 100, 180))
statistics = ImageStat.Stat(image)
print(statistics.var)

stddev cached property

stddev: list[float]

Population standard deviation in each band.

Examples:

from blanket import Image, ImageStat

image = Image.new("RGB", (8, 8), (40, 100, 180))
statistics = ImageStat.Stat(image)
print(statistics.stddev)