Matplotlib imread in Python

Suraj Joshi 15 Februar 2024
Matplotlib imread in Python

Der Artikel erklärt, wie wir mit der Methode imread() aus dem Matplotlib-Paket eine Bilddatei in ein Array einlesen können.

matplotlib.pyplot.imread()

Die Methode matplotlib.pyplot.imread() liest ein Bild aus einer Datei in ein Array.

Syntax

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

Dabei steht fname für den Namen der zu lesenden Bilddatei und format für das Format der Bilddatei. Wenn format=None wird die Funktion das Format aus dem Dateinamen extrahieren.

Die Funktion gibt ein Array mit der Form MxN für Graustufenbilder, MxNx3 für RGB-Bilder und MxNx4 für RGBA-Bilder zurück, wobei M die Breite und N die Höhe des Bildes ist.

Beispiel: Einlesen von Bildern mit der Funktion matplotlib.pyplot.imread()

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()

Ausgabe:

Lesen von Bildern mit der imread-Methode

Es wird das Bild lena.png im aktuellen Arbeitsverzeichnis mit der Methode imread() in ein Array eingelesen und dann mit der Methode imshow() angezeigt.

Standardmäßig hat es X-Achse und Y-Achse mit Häkchen im angezeigten Bild. Um die Achsen und Häkchen zu entfernen, verwenden wir die Anweisung plt.axis('off'). Schließlich verwenden wir die Funktion matplotlib.pyplot.show(), um das Bild anzuzeigen.

Wir können die Form des Bildarrays mit dem Attribut shape betrachten.

import matplotlib.pyplot as plt

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

Ausgabe:

(330, 330, 3)

Es wird die Form des Bildes gedruckt - (330, 330, 3), was ein 3-dimensionales Bildarray mit einer Breite von 330, einer Höhe von 330 und 3 Kanälen darstellt.

Beispiel: Bilder mit der Funktion matplotlib.pyplot.imread() ausschneiden

Nachdem matplotlib.pyplot.imread() ein Bild in ein NumPy-Array eingelesen hat, können wir das Bild ausschneiden, indem wir das Array mit dem Operator : indizieren.

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()

Ausgabe:

Bilder mit der imread-Methode ausschneiden

Hier liest die Methode imread() das gesamte Bild in ein Array ein, wobei wir nur die Elemente von Position 50 bis 300 in der Breite und Elemente von Position 30 bis 300 in der Höhe auswählen und das indizierte Array in img_array speichern. Anschließend zeigen wir das indizierte Array mit der Funktion imshow() an.

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()

Ausgabe:

Kreisförmige Bilder mit der imread-Methode

Sie zeigt das mit einem kreisförmigen Ausschnitt beschnittene Bild an. Hier wird das Bild mit Hilfe eines kreisförmigen Ausschnitts mit dem Mittelpunkt (160, 160) und einem Radius von 150 beschnitten.

Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Verwandter Artikel - Matplotlib Images