Convertir des textes en images

PythonPythonBeginner
Pratiquer maintenant

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

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous allons apprendre à utiliser la bibliothèque Matplotlib de Python pour convertir des textes en images. Cela est utile lorsque nous voulons inclure du texte dans une image ou une visualisation, ou lorsque nous voulons créer des images de texte pour les applications d'apprentissage automatique ou de vision par ordinateur.

Conseils sur la VM

Une fois le démarrage de la VM terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Carnet de notes pour accéder à Jupyter Notebook pour la pratique.

Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations de Jupyter Notebook.

Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez votre feedback après la session, et nous résoudrons rapidement le problème pour vous.

Importez les bibliothèques nécessaires

Nous allons commencer par importer les bibliothèques nécessaires, qui incluent Matplotlib et BytesIO.

from io import BytesIO
import matplotlib.pyplot as plt
from matplotlib.figure import Figure
from matplotlib.transforms import IdentityTransform

Convertir le texte en RGBA

Pour convertir du texte en image, nous allons le dessiner sur une figure vide et transparente, enregistrer la figure dans un tampon temporaire, puis charger le tampon à l'aide de 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

Dessiner des images de texte sur une figure

Une fois que nous avons converti le texte en une image RGBA, nous pouvons la dessiner sur une figure à l'aide de .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()

Dessiner des textes sur une figure avec positionnement en coordonnées pixels

Alternativement, nous pouvons directement dessiner du texte sur une figure avec un positionnement en coordonnées pixels en utilisant .Figure.text ainsi que .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()

Récapitulatif

Dans ce laboratoire, nous avons appris à utiliser Matplotlib pour convertir des textes en images. Nous avons utilisé la fonction text_to_rgba pour convertir le texte en une image RGBA, puis utilisé .Figure.figimage et .Figure.text pour dessiner l'image de texte ou le texte sur une figure. Cela est utile pour créer des images de texte destinées à être utilisées dans des applications d'apprentissage automatique ou de vision par ordinateur, ou pour inclure du texte dans des visualisations.