Beheben von Anzeigeproblemen für Graustufenbilder in Matplotlib
Beim Versuch, ein Graustufenbild mit Matplotlibs imshow() anzuzeigen, sind Sie auf ein Problem gestoßen Situation, in der das Bild stattdessen als Farbkarte angezeigt wird. Dies kann frustrierend sein, wenn Ihr Ziel darin besteht, mit Farbe über das Bild zu zeichnen.
Die Lösung
Die Diskrepanz entsteht, weil die Funktion imshow() eine Farbkarte zuweist standardmäßig zum Bild hinzugefügt. Um dies zu korrigieren, geben Sie explizit das Argument cmap an und setzen Sie es auf „gray“ oder „gray_r“, um Graustufen bzw. inverse Graustufen anzuzeigen:
<code class="python">import numpy as np import matplotlib.pyplot as plt from PIL import Image # Open and convert the image to grayscale fname = 'image.png' image = Image.open(fname).convert("L") # Convert the image to a matrix arr = np.asarray(image) # Display the grayscale image plt.imshow(arr, cmap='gray', vmin=0, vmax=255) # Use 'gray_r' for inverse grayscale plt.show()</code>
Wie dieser geänderte Code zeigt, stellt die Angabe der Farbkarte sicher, dass die Das Bild wird korrekt als Graustufen gerendert. Sie können nun mit der beabsichtigten Aufgabe fortfahren, mit Farbe über das Bild zu zeichnen.
Das obige ist der detaillierte Inhalt vonWarum erscheint mein Graustufenbild in Farbe, wenn ich imshow() von Matplotlib verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!