Matplotlib imread em Python

Suraj Joshi 15 fevereiro 2024
Matplotlib imread em Python

O artigo explica como podemos ler um ficheiro de imagem para um array utilizando o método imread() a partir do pacote Matplotlib.

matplotlib.pyplot.imread()

O matplotlib.pyplot.imread() lê uma imagem de um ficheiro para um array.

Sintaxe

matplotlib.pyplot.imread(fname, format=None)

Aqui, fname representa o nome do ficheiro de imagem a ler, e format representa o formato do ficheiro de imagem. Se format=None a função extrairá o formato do nome do ficheiro.

A função retorna um array com a forma MxN para imagens em escala de cinzentos, MxNx3 para imagens RGB, e MxNx4 para imagens RGBA, onde M é a largura e N é a altura da imagem.

Exemplo: Ler imagens utilizando a função matplotlib.pyplot.imread() Função

import numpy as np
import matplotlib.pyplot as plt

img_array = plt.imread("lena.png")
plt.imshow(img_array)
plt.title("Display Image read using imread()")
plt.axis("off")
plt.show()

Resultado:

Ler imagens usando o Método imread

Lê a imagem lena.png no directório de trabalho actual num array utilizando o método imread() e depois mostra a imagem utilizando o método imshow().

Por defeito, tem X-eixo e Y-eixo com ticks na imagem exibida. Para remover os eixos e carrapatos, utilizamos a declaração plt.axis('off'). Finalmente, utilizamos a função matplotlib.pyplot.show() para mostrar a imagem.

Podemos ver a forma do array da imagem utilizando o atributo shape.

import matplotlib.pyplot as plt

img_array = plt.imread("lena.png")
print(img_array.shape)

Resultado:

(330, 330, 3)

Imprime a forma da imagem - (330, 330, 3), representando um array de imagem tridimensional de largura como 330, altura como 330, e 3 canais.

Exemplo: Clip Imagens Utilizando o matplotlib.pyplot.imread() Função

Depois de matplotlib.pyplot.imread() ler uma imagem num array NumPy, podemos recortar a imagem indexando a matriz utilizando o operador :.

import matplotlib.pyplot as plt

img_array = plt.imread("lena.png")[50:300, 30:300]
plt.imshow(img_array)
plt.axis("off")
plt.title("Clipped Image")
plt.show()

Resultado:

Recortar imagens utilizando o método imread

Aqui, o método imread() lê a imagem completa num array, e seleccionamos apenas os elementos da posição 50 a 300 em largura e os elementos da posição 30 a 300 em altura e armazenamos a matriz indexada em img_array. Depois exibimos o array indexada utilizando a função imshow().

import matplotlib.pyplot as plt
import matplotlib.patches as patches

img_array = plt.imread("lena.png")

fig, ax = plt.subplots()
im = ax.imshow(img_array)
patch = patches.Circle((160, 160), radius=150, transform=ax.transData)
im.set_clip_path(patch)

ax.axis("off")
plt.show()

Resultado:

Imagens circulares utilizando o método imread

Exibe a imagem recortada utilizando um adesivo circular. Aqui, recortamos a imagem utilizando um remendo circular com o centro em (160, 160) e o raio em 150.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Artigo relacionado - Matplotlib Images