Plot the block mean of an imageΒΆ

An example showing how to use broad-casting to plot the mean of blocks of an image.

Python source code: plot_block_mean.py

import numpy as np
import scipy.misc
from scipy import ndimage
import matplotlib.pyplot as plt
f = scipy.misc.face(gray=True)
sx, sy = f.shape
X, Y = np.ogrid[0:sx, 0:sy]
regions = sy/6 * (X/4) + Y/6
block_mean = ndimage.mean(f, labels=regions,
index=np.arange(1, regions.max() +1))
block_mean.shape = (sx/4, sy/6)
plt.figure(figsize=(5, 5))
plt.imshow(block_mean, cmap=plt.cm.gray)
plt.axis('off')
plt.show()