Spaltensummation von Bildern

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
degon
User
Beiträge: 28
Registriert: Montag 14. Juni 2010, 12:03

Hi,
ich habe ein Problem und zwar möchte ich ein Bild auslesen und dann die die Grauwerte der Spalten mitteln. In Matlab gab es damals einen einfachen Meanbefehl...Wenn ich eine Summe über nim.getpixel über width und height ausführe bekomme ich immer das Problem das ich über ein "int" nicht summieren kann. Das verstehe ich nicht.

Die Anzahl an Spalten muss gleich bleiben, nur letztlich sollte eine Zeile anschließend überbleiben die ich dann Plotten kann usw.

Code: Alles auswählen


import Image
im = Image.open('C:/testf.jpg')
nim = im.convert('L')
(width, height) = nim.size;   

Kann mir jemand bitte helfen? Ich möchte damit Strahlprofile von Kamerabildern analysieren.
degon
User
Beiträge: 28
Registriert: Montag 14. Juni 2010, 12:03

Ahhh habe gerade nochmal was in Numpy probiert:

Code: Alles auswählen


import Image
from numpy import *

im = Image.open('C:/testf.jpg')
nim = im.convert('L') 
(width, height) = nim.size;  
z = array(nim);
zsum = z.sum(0); 
zm = zsum/height


Liege ich jetzt damit richtig ? Eine Frage ist hinzugekommen, warum kann ich (width, height) = nim.size; aber nicht (width, height) = nim.size(); eingeben?
BlackJack

@degon: Size ist halt ein Attribut was man nicht aufrufen kann. Würdest Du die Frage auch hier stellen warum ``a()`` eine Ausnahme auslöst:

Code: Alles auswählen

a = (1, 2)
a()
Und die Ausnahme erklärt es doch eigentlich schon warum das so ist.
Benutzeravatar
HerrHagen
User
Beiträge: 430
Registriert: Freitag 6. Juni 2008, 19:07

Liege ich jetzt damit richtig ?
Ja. Es gibt übrigens auch ein passendes scipy package (d.h. kann mit numpy-arrays gefüttert werden) für Bildverarbeitung http://docs.scipy.org/doc/scipy/reference/ndimage.html
Benutzeravatar
HerrHagen
User
Beiträge: 430
Registriert: Freitag 6. Juni 2008, 19:07

Wenn du Matlab magst, dann ist sicher auch Matplotlib was für dich (falls du es noch nicht kennst):http://matplotlib.sourceforge.net/
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

matplotlib bietet noch einen direkten Weg:

Code: Alles auswählen

from matplotlib.image import imread
img = imread('test.png')
img = img.mean(0)
Grüße
Gerrit
Antworten