Tutoriales

Aplicar una máscara binaria en una imagen en Python

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. Si alguien conoce alguna alternativa más reducida o con menos módulos cargados estaré encantado de que la comparta.

Manuel Ignacio López Quintero

Doctor en Ingeniería Informática especializado en Sistemas Inteligentes y Visión Artificial. Profesor y coadministrador de Linux Hispano. Para más información o para contactar con él visita su página oficial: Manuel Ignacio López Quintero.

Ver comentarios

Entradas recientes

Nueva versión de OnlyOffice Docs

Desde el equipo de ONLYOFFICE se han puesto en contacto con nosotros para contarnos que…

2 semanas hace

EOF

2 meses hace

CERN

2 meses hace

Agua

2 meses hace

Aire acondicionado

2 meses hace

Eclipse

2 meses hace