ich benutzt die PIL für wissenschaftliche Datenverarbeitung. Dabei stehe ich momentan vor zwei wesentlichen Problemen, die mir das Arbeiten ein wenig erschweren:
1. Die Laufzeiten sind extrem lange:
Code: Alles auswählen
import Image
img=Image.open(newfile)
try:
for m in range(0,1100):
print m # nur um zu sehen, dass das Programm noch arbeitet
img.seek(m) # blättern innerhalb des Stacks
for i in range(1,img.size[0]): # "Scanen" der einzelnen Bilder
for j in range(1,img.size[1]):
if img.getpixel((i,j)) == 255: # falls ein weisser (255) Pixel gefunden wird, dann...
img.show()
except EOFError:
print m,"Ende der Sequenz \n"
Gegenüber Java habe ich schon den Vorteil gemerkt, dass python sehr sparsam für den Arbeitsspeicher ist und nicht gleich der komplette Stack geladen wird, sondern teilweise nur 3 MB bei Daten die z.T. 400 MB pro Stack ausmachen.
Es wäre vielleicht für die Laufzeit hilfreich den gesamten Stack mit einem mal in den Speicher zu laden - wie würde das gehen?
Gibt es sonst Hinweise, wie ich mich schneller durch einen Stack bewegen kann, als oben angegeben?
2.Das zweite Problem ist folgendes.
Das, was im obigen Code durch das "show()" ersetzt wurde, enthält teilweise
Code: Alles auswählen
img.putpixel((x,y),100)
Vielen Dank bereits im Vorhinein.
Viele Grüße
Axon