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

EOF

9 horas hace

CERN

1 semana hace

Agua

2 semanas hace

Aire acondicionado

3 semanas hace

Eclipse

4 semanas hace

Monitoriza tu consumo de Claude Code en GNOME con Python y AppIndicator

Si trabajas a diario con Claude Code, seguramente te haya pasado: estás a mitad de…

1 mes hace