Heim >Backend-Entwicklung >Python-Tutorial >Wie werden Graustufenbilder in Matplotlib korrekt angezeigt?

Wie werden Graustufenbilder in Matplotlib korrekt angezeigt?

Barbara Streisand
Barbara StreisandOriginal
2024-10-31 04:41:01873Durchsuche

How to Display Grayscale Images Correctly in Matplotlib?

Bilder als Graustufen anzeigen

Viele Bildbearbeitungsaufgaben erfordern oft Graustufenbilder, um die Verarbeitung zu erleichtern. Das Anzeigen von Graustufenbildern mit der Funktion imshow() von Matplotlib kann eine Herausforderung sein, wenn das Bild versehentlich als Farbkarte gerendert wird.

Um dieses Problem zu beheben und ein Graustufenbild korrekt anzuzeigen, führen Sie die folgenden Schritte aus:

  1. Erforderliche Bibliotheken importieren:Laden Sie wichtige Bibliotheken wie NumPy für die Bildverarbeitung, Matplotlib für das Plotten und PIL für die Bildbearbeitung.
  2. Bilder lesen und in Graustufen konvertieren: Verwenden Sie die Image.open()-Funktion von PIL, um das Bild aus einer Datei zu lesen. Anschließend konvertieren Sie das Bild mit „convert(“L“) in Graustufen.
  3. Bild in Matrix konvertieren: Wandeln Sie das Graustufenbild mit SciPys scipy.misc.fromimage() in eine numerische Matrix um.
  4. Graustufenanzeige angeben: Wenn Sie die Matrix mit matplotlib.pyplot.imshow() anzeigen, geben Sie die Farbkarte explizit als „Grau“ an, um das Bild in Graustufen darzustellen. Passen Sie die Parameter „vmin“ und „vmax“ an, um den Wertebereich für Graustufenintensitäten festzulegen.
<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>

Alternativ ändern Sie zur Anzeige der inversen Graustufen einfach den Parameter cmap in „gray_r“.

Das obige ist der detaillierte Inhalt vonWie werden Graustufenbilder in Matplotlib korrekt angezeigt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn