Heim >Backend-Entwicklung >Python-Tutorial >Warum erscheint mein Graustufenbild mit einer Farbkarte, wenn ich Matplotlib verwende?
Anzeigen von Bildern als Graustufen mit Matplotlib
Beim Arbeiten mit Bildern mithilfe von matplotlib.pyplot.imshow() ist die Konvertierung in Graustufen unerlässlich Elemente mit Farbe überlagern. Um diese Konvertierung zu erleichtern, wird häufig die PIL-Funktion Image.open().convert("L") verwendet.
Problem
Trotz der Verwendung von PIL zum Konvertieren eines Bildes Graustufen, die Anzeige mit matplotlib.pyplot.imshow() führt dazu, dass das Bild mit einer Farbkarte statt mit echten Graustufen angezeigt wird.
Lösung
Um dieses Problem zu beheben, verwenden Sie es Es ist wichtig, das Argument colormap anzugeben, wenn matplotlib.pyplot.imshow() aufgerufen wird. Standardmäßig wählt matplotlib eine Farbkarte aus, die dem Bild Farbe verleihen kann. Um die Graustufendarstellung sicherzustellen, legen Sie cmap='gray' fest und definieren Sie den Grauwertbereich explizit mit vmin=0 und vmax=255.
Beispielcode
Der folgende Code Das Snippet zeigt, wie man ein Bild lädt, es in Graustufen umwandelt und anzeigt:
<code class="python">import numpy as np import matplotlib.pyplot as plt from PIL import Image fname = 'image.png' image = Image.open(fname).convert("L") arr = np.asarray(image) plt.imshow(arr, cmap='gray', vmin=0, vmax=255) plt.show()</code>
Wenn Sie alternativ die inverse Graustufendarstellung bevorzugen, ändern Sie das cmap-Argument in „gray_r“.
Das obige ist der detaillierte Inhalt vonWarum erscheint mein Graustufenbild mit einer Farbkarte, wenn ich Matplotlib verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!