Si trabajas en Visión Artificial, muchas veces es necesario aplicar una segmentación en una imagen mediante una máscara binaria.
En un principio sólo necesitas las librerías de Numpy y Matplotlib de Python.
Aquí os dejo un script de ejemplo donde uso Scipy para cargar una máscara desde GNU Octave/MATLAB:
import numpy as np
import scipy.io as sio # Permite cargar un fichero de GNU Octave/MATLAB
from matplotlib import pyplot as plt
image = plt.imread(‘entrada.png’)
bin_mask = sio.loadmat(‘mask.mat’)[‘bin_mask’].astype(‘bool’)
mask = np.dstack((bin_mask, bin_mask, bin_mask))
image[~mask] = 0
plt.imsave(‘salida.png’, image)
Creo que ésta es la manera más elegante de hacerlo.