Matplotlib imread()-Methode
Die Methode imread() ist eine Funktion in der Matplotlib-Bibliothek, die verwendet wird, um Bilddaten aus einer Bilddatei zu lesen.
Die Methode imread() gibt ein numpy.ndarray-Objekt zurück, dessen Form(nrows, ncols, nchannels)ist und die Anzahl der Zeilen, Spalten und Kanäle des gelesenen Bildes angibt:
- Wenn das Bild ein Graustufenbild ist, ist nchannels 1.
- Wenn es ein Farbbild ist, ist nchannels 3 oder 4, was die drei Farbkanäle Rot, Grün und Blau bzw. einen Alphakanal darstellt.
Die Syntax der Methode imread() lautet wie folgt:
matplotlib.pyplot.imread(fname, format=None)
Parameter description:
fname: Gibt den Dateinamen oder Dateipfad der zu lesenden Bilddatei an. Er kann ein relativer oder ein absoluter Pfad sein.format: Der Parameter gibt das Format der Bilddatei an. Wenn er nicht angegeben wird, wird das Format standardmäßig anhand der Dateierweiterung automatisch erkannt.
Das folgende Beispiel zeigt, wie die Funktion imread verwendet wird, um Bilddaten aus einer Bilddatei zu lesen und anzuzeigen:
Beispiel
# Bilddatei lesen, Download-Adresse: /static.jyshare.com/images/demo/map.jpeg
img = plt.imread('map.jpeg')
# Bild anzeigen
plt.imshow(img)
plt.show()
Im obigen Beispiel verwenden wir zunächst die Methode imread(), um Bilddaten aus der Bilddatei namens map.jpeg zu lesen und sie in der Variablen img zu speichern.
Dann verwenden wir die Methode imshow(), um dieses Bild anzuzeigen.
Hinweis: Wir haben beim Anzeigen des Bildes keine Farbtabelle (Colormap) angegeben, weil die Methode imread() die Bilddaten bereits gemäß der korrekten Farbtabelle in das RGB-Format konvertiert hat, sodass wir direkt die Standard-Farbtabelle verwenden können, um das Bild anzuzeigen.
Das Anzeigeergebnis ist wie folgt:

Wir können das Bild ändern, indem wir das numpy-Array ändern.
Wenn wir das Array zum Beispiel mit einer Zahl0≤≤1multiplizieren, verdunkeln wir das Bild:
Beispiel
# Bilddatei einlesen, Download-Adresse: /static.jyshare.com/images/mix/tiger.jpeg
img_array = plt.imread('tiger.jpeg')
tiger = img_array/255
#print(tiger)
# Bild anzeigen
plt.figure(figsize=(10,6))
for i in range(1,5):
plt.subplot(2,2,i)
x = 1 - 0.2*(i-1)
plt.axis('off') #Koordinatenachsen ausblenden
plt.title('x={:.1f}'.format(x))
plt.imshow(tiger*x)
plt.show()
Das Anzeigeergebnis ist wie folgt:

Das folgende Beispiel wird verwendet, um ein Bild zuzuschneiden:
Beispiel
# Bilddatei einlesen, Download-Adresse: /static.jyshare.com/images/mix/tiger.jpeg
img_array = plt.imread('tiger.jpeg')
tiger = img_array/255
#print(tiger)
# Bild anzeigen
plt.figure(figsize=(6,6))
plt.imshow(tiger[:300,100:400,:])
plt.axis('off')
plt.show()
Das Anzeigeergebnis ist wie folgt:

Wenn wir die Array-Elemente der Grün- und Blau-Koordinaten der RGB-Farbe auf 0 setzen, erhalten wir ein rotes Bild:
Beispiel
# Bilddatei einlesen, Download-Adresse: /static.jyshare.com/images/mix/tiger.jpeg
img_array = plt.imread('tiger.jpeg')
tiger = img_array/255
#print(tiger)
# Bild anzeigen
red_tiger = tiger.copy()
red_tiger[:, :,[1,2]] = 0
plt.figure(figsize=(10,10))
plt.imshow(red_tiger)
plt.axis('off')
plt.show()
Das Anzeigeergebnis ist wie folgt:
