Ist es möglich, die RGB-Farbe eines Pixels mit PIL zu erhalten? Ich benutze diesen Code:
im = Image.open("image.gif")
pix = im.load()
print(pix[1,1])
Es wird jedoch nur eine Zahl (z. B. 0
oder 1
) und nicht drei Zahlen (z. B. 60,60,60
für R, G, B) ausgegeben. Ich glaube, ich verstehe etwas über die Funktion nicht. Ich würde gerne eine Erklärung finden.
Vielen Dank.
GIFs speichern Farben als eine von x möglichen Farben in einer Palette. Lesen Sie mehr über die gif-begrenzte Farbpalette . PIL gibt Ihnen also den Palettenindex und nicht die Farbinformationen dieser Palettenfarbe.
Bearbeiten: Link zu einer Blogpost-Lösung mit Tippfehler entfernt. Andere Antworten machen dasselbe ohne Tippfehler.
quelle
Eine Alternative zum Konvertieren des Bildes besteht darin, einen RGB-Index aus der Palette zu erstellen.
quelle
Nicht PIL,
imageio.imread
könnte aber trotzdem interessant sein:gibt
so ist es (Höhe, Breite, Kanäle). Das Pixel an der Position
(x, y)
ist alsoVeraltet
scipy.misc.imread
ist in SciPy 1.0.0 veraltet (danke für die Erinnerung, fbahr !)quelle
scipy.misc.imread
ist veraltet!imread
ist in SciPy 1.0.0 veraltet und wird in 1.2.0 entfernt. Verwenden Sieimageio.imread
stattdessen.