Farbwert aus einem Bild bestimmen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
kiiu
User
Beiträge: 9
Registriert: Donnerstag 24. August 2006, 09:31

Dienstag 17. April 2007, 14:39

ich möchte an einer bestimmten Position im Bild den Farbwert auslesen..
habe etwas rumgesucht, jedoch fündig bin ich bisher nicht geworden -_-

soeben probierte ich nen paar Funktionen der PIL -
die Funktion "getcolors()" klang ganz vielversprechend:

Code: Alles auswählen

>>> im.getcolors()
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
AttributeError: GifImageFile instance has no attribute 'getcolors'
Leider wie man sieht, gibt es einen Fehler.
Es handelt sich bei den fragl. Dateien definitiv (auch später) um GIF Dateien..

Letztendl. bekomm ich von der Funktion nach Beschreibung aber eh
eine Auflistung aller Farben und deren Anzahl - aus dieser kann ich
schlecht ermitteln welche Farbe sich wo befindet..

Wie erwähnt, möchte ich gerne die Farbe von Pixel an Position (x, y) haben..

Hat jemand einen Tipp?

[edit]
grad die Funktion "getpixel()" entdeckt:

Code: Alles auswählen

>>> im.getpixel((0, 0))
57
maybe kann mir jemand sagen, was ich damit anfang? ^^
BlackJack

Dienstag 17. April 2007, 14:53

Die Methode `getcolors()` sollte es aber geben. Eigenartig.

Das was Du suchst ist `getpixel()`. Bei GIF-Bildern liefert das allerdings keine Farbe als RGB-Wert, sondern den Index in die Palette.

Wenn Du den RGB-Wert brauchst, dann kannst Du das Bild umwandeln:

Code: Alles auswählen

In [116]: a = Image.open('/home/new/work/spoj/1415_pcv2/turbo_032948.gif')

In [117]: a.getpixel((10, 10))
Out[117]: 6

In [118]: b = a.convert('RGB')

In [119]: b.getpixel((10, 10))
Out[119]: (0, 0, 0)
kiiu
User
Beiträge: 9
Registriert: Donnerstag 24. August 2006, 09:31

Dienstag 17. April 2007, 14:59

perfekt :>
danke dir ;)
Antworten