Convertir textos a imágenes

PythonPythonBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

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.