Konvertieren eines RGB-Bilds in Graustufen in Python
Sie versuchen, ein RGB-Bild mithilfe der Matplotlib-Bibliothek von Python in Graustufen zu konvertieren. Während die Bibliothek Lesefunktionen bietet, ist die Graustufenkonvertierung nicht explizit enthalten.
Eingebaute Funktionssuche
Sie haben zu Recht das Fehlen einer nativen Graustufenkonvertierungsfunktion in Frage gestellt entweder in NumPy oder Matplotlib. Tatsächlich ist eine solche Transformation ein grundlegender Vorgang in der Bildverarbeitung.
Auflösungsoptionen
Trotz des Fehlens einer integrierten Funktion gibt es mehrere empfohlene Ansätze:
Pillow-Bibliothek:
Pillow, eine Bildbearbeitungsbibliothek, bietet eine einfache und effiziente Möglichkeit Lösung:
from PIL import Image img = Image.open('image.png').convert('L') img.save('greyscale.png')
Matplotlib-Formelimplementierung:
Mit Matplotlib können Sie die Graustufenkonvertierungsformel selbst implementieren:
import numpy as np import matplotlib.pyplot as plt import matplotlib.image as mpimg def rgb2gray(rgb): return np.dot(rgb[...,:3], [0.2989, 0.5870, 0.1140]) img = mpimg.imread('image.png') gray = rgb2gray(img) plt.imshow(gray, cmap=plt.get_cmap('gray'), vmin=0, vmax=1) plt.show()
Benutzerdefinierte Funktion:
Sie können auch Ihre eigene Funktion erstellen, um die Konvertierung durchzuführen, wie gezeigt in Ihrem Originalcode. Obwohl es möglicherweise nicht die effizienteste ist, bietet es eine praktikable Lösung.
Alpha-Kanal-Erhaltung
Wenn Ihr Eingabebild einen Alpha-(Transparenz-)Kanal enthält, ermöglicht Pillow dies Sie können es mithilfe des „LA“-Modus speichern:
img = Image.open('image.png').convert('LA')
Diese Ansätze bieten Flexibilität und Effizienz basierend auf Ihren spezifischen Anforderungen Anforderungen.
Das obige ist der detaillierte Inhalt vonWie kann ich ein RGB-Bild in Python in Graustufen konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!