Before addressing the challenges of image processing and compression, it pays off to examine the sequence of basic operations that we perform on images. These operations are the building blocks of the algorithms we are to explore. By themselves, they beautifully illustrate the basic principle of mathematical imaging. An image is represented as a mathematical object and, as such, basic operations on the corresponding object can be translated to either physical operations or queries on the corresponding image.

In the setting of binary images, we could regard an image as a set of objects or blobs (in white) on an empty region of the plane (the background, in black). It is then possible to perform different measures on each of the objects represented:

In [1]: import numpy as np, matplotlib.pyplot as plt; \...: from skimage.data import hubble_deep_fieldIn [2]: image = (hubble_deep_field()[:,:,0] > 120)