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:
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:
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:
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 is a backend software engineer at Matrice.ai.
LinkedIn