Converter Textos em Imagens

Beginner

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

Introdução

Neste laboratório, aprenderemos como usar a biblioteca Matplotlib do Python para converter textos em imagens. Isso é útil quando queremos incluir texto em uma imagem ou visualização, ou quando queremos criar imagens de texto para uso em aplicações de machine learning (aprendizado de máquina) ou computer vision (visão computacional).

Dicas da VM

Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook e acessar o Jupyter Notebook para praticar.

Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido às limitações do Jupyter Notebook.

Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão, e resolveremos o problema prontamente para você.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível avançado com uma taxa de conclusão de 46%. Recebeu uma taxa de avaliações positivas de 100% dos estudantes.

Importar as bibliotecas necessárias

Começaremos importando as bibliotecas necessárias, que incluem Matplotlib e BytesIO.

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

Converter texto para RGBA

Para converter texto em uma imagem, vamos desenhá-lo em uma figura vazia e transparente, salvar a figura em um buffer temporário e, em seguida, carregar o buffer 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

Desenhar imagens de texto em uma figura

Uma vez que convertemos o texto em uma imagem RGBA, podemos desenhá-lo em uma 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()

Desenhar textos em uma figura com posicionamento em coordenadas de pixel

Alternativamente, podemos desenhar diretamente texto em uma figura com posicionamento em coordenadas de pixel usando .Figure.text juntamente com .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()

Resumo

Neste laboratório, aprendemos como usar Matplotlib para converter textos em imagens. Usamos a função text_to_rgba para converter texto em uma imagem RGBA e, em seguida, usamos .Figure.figimage e .Figure.text para desenhar a imagem de texto ou o texto em uma figura. Isso é útil para criar imagens de texto para uso em aplicações de aprendizado de máquina ou visão computacional, ou para incluir texto em visualizações.