Introducción
En este laboratorio, aprenderemos a usar la biblioteca Matplotlib de Python para convertir textos en imágenes. Esto es útil cuando queremos incluir texto en una imagen o visualización, o cuando queremos crear imágenes de texto para su uso en aplicaciones de aprendizaje automático o visión por computadora.
Consejos sobre la VM
Una vez que se haya iniciado la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.
A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.
Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje comentarios después de la sesión y resolveremos rápidamente el problema para usted.
Importar las bibliotecas necesarias
Comenzaremos importando las bibliotecas necesarias, que incluyen Matplotlib y BytesIO.
from io import BytesIO
import matplotlib.pyplot as plt
from matplotlib.figure import Figure
from matplotlib.transforms import IdentityTransform
Convertir texto a RGBA
Para convertir texto en una imagen, lo dibujaremos en una figura vacía y transparente, guardaremos la figura en un búfer temporal y luego cargaremos el búfer usando plt.imread.
def text_to_rgba(s, *, dpi, **kwargs):
fig = Figure(facecolor="none")
fig.text(0, 0, s, **kwargs)
with BytesIO() as buf:
fig.savefig(buf, dpi=dpi, format="png", bbox_inches="tight", pad_inches=0)
buf.seek(0)
rgba = plt.imread(buf)
return rgba
Dibujar imágenes de texto en una figura
Una vez que hayamos convertido el texto en una imagen RGBA, podemos dibujarla en una figura usando .Figure.figimage.
fig = plt.figure()
rgba1 = text_to_rgba(r"IQ: $\sigma_i=15$", color="blue", fontsize=20, dpi=200)
rgba2 = text_to_rgba(r"some other string", color="red", fontsize=20, dpi=200)
fig.figimage(rgba1, 100, 50)
fig.figimage(rgba2, 100, 150)
plt.show()
Dibujar textos en una figura con posicionamiento en coordenadas de píxeles
Alternativamente, podemos dibujar directamente texto en una figura con posicionamiento en coordenadas de píxeles usando .Figure.text junto con .transforms.IdentityTransform.
fig.text(100, 250, r"IQ: $\sigma_i=15$", color="blue", fontsize=20, transform=IdentityTransform())
fig.text(100, 350, r"some other string", color="red", fontsize=20, transform=IdentityTransform())
plt.show()
Resumen
En este laboratorio, aprendimos cómo usar Matplotlib para convertir textos en imágenes. Usamos la función text_to_rgba para convertir el texto en una imagen RGBA, y luego usamos .Figure.figimage y .Figure.text para dibujar la imagen de texto o el texto en una figura. Esto es útil para crear imágenes de texto para su uso en aplicaciones de aprendizaje automático o visión por computadora, o para incluir texto en visualizaciones.