En este post revisaremos cómo mostrar imágenes con Matplotlib, openCV y Python.
Matplotlib
Matplotlib es una biblioteca para crear varios tipos de gráficas como funciones aritméticas, gráficos de barras, gráficas estadísticas, etc. En este post registro como mostrar una imagen con Matplotlib, esto puede ser útil para mostrar varias imágenes a la vez y comparar resultados.
Mostrar una imagen con Matplotlib
Leeremos la imagen Tren.png
que se muestra a continuación:

Tren.png
Para mostrar la imagen usamos la función imshow()
de Matplotlib
. Es importante cambiar el espacio de color (línea 7) a la imagen porque openCV lee la imagen como BGR
y Matplotlib la muestra como RBG
. Si no cambiamos de espacio de color, la imagen se mostrará con colores diferentes.
A continuación se describen las líneas de código usadas:
import cv2
, importar la biblioteca openCVimport matplotlib.pyplot as plt
, a la biblioteca matplotlib le asigno un aliasplt
imgBGR = cv2.imread('Tren.png')
- Leo la imagen Tren.jpg con la función imread de openCV.
- Nota: OpenCV carga las imágenes en formato B G R, y matplotlib muestra las imagenes en formato R G B por eso se debe cambiar el espaco de color de la imagen antes de mostrarla, caso contrario mostrará colores distintos
imgRGB = cv2.cvtColor(imgBGR, cv2.COLOR_BGR2RGB)
- Cambio el espacio de color desde B G R a R G B, usando la función cvtColor
plt.xticks([]), plt.yticks([])
evita que aparezcan ejes en la figuraplt.imshow(imgRGB')
, identifica que imagen mostrarplt.show()
, muestra la imagen
El código completo se muestra a continuación:
1 2 3 4 5 6 7 8 9 10 11 | #importar Bibliotecas openCV, matplotlib import cv2 import matplotlib.pyplot as plt #Cargar la imagen con openCV imgBGR = cv2.imread( 'Tren.png' ) #Cambiar esacio de color BGR a RGB imgRGB = cv2.cvtColor(imgBGR, cv2.COLOR_BGR2RGB) #Mostrar imagen plt.xticks([]), plt.yticks([]) plt.imshow(imgRGB, cmap = 'gray' , interpolation = 'bicubic' ) plt.show() |
El resultado será el siguiente

Mostrar imágenes con Matplotlib en una misma figura
Las imagenes que usaré estan en una carpeta llamada Imagenes_Ecuador
y son Amazonía.jpg, Cotopaxi.jpg, Galápagos.jpg, Manta.jpg, Otavalo.png, Quilotoa.jpg, Quito.jpg, Salinas.jpg, Tren.png

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | import os import cv2 import matplotlib.pyplot as plt dirCarpeta = '/home/kipuna/Escritorio/Python-MostrarImagenesMatplotlib-main/Imagenes_Ecuador/' archivos = os.listdir(dirCarpeta) img_array = [] titulos_array = [] for x in range ( 0 , len (archivos)): dirArchivo = dirCarpeta + archivos[x] imgBGR = cv2.imread(dirArchivo) imgRGB = cv2.cvtColor(imgBGR, cv2.COLOR_BGR2RGB) img_array.append(imgRGB) img_ext = archivos[x] nomImagen = img_ext[: - 4 ] titulos_array.append(nomImagen) plt.subplot( 3 , 3 ,x + 1 ) plt.xticks([]), plt.yticks([]) plt.xlabel(titulos_array[x]) plt.imshow(img_array[x]) plt.suptitle( 'Lugares del Ecuador' ) plt.savefig( 'lugaresEcuador.jpg' ) plt.show() |
El resultado será el siguiente, 3 filas de imágenes que se ajustan al tamaño de la figura para mostrarse todas y poder compararlas.

Encuentra más tutoriales con imágenes en Visión por computador básico
Salvavidas joven, te amo
Y yo a ti persona aprecia mi trabajo. Gracias por visitarnos
Buen script. Felicitaciones!
Tienes algo para hacer reconocimiento facial?
Hola, aún no. Trabajaremos en eso en el futuro
Gracias por visitarnos