Seite 1 von 1

Multiprocessing und ImageFilter

Verfasst: Donnerstag 18. April 2013, 16:31
von Loonix
Hallo,

ich habe da ein paar kleine Fragen und hoffe ihr könnte mir helfen.
Ich bin auf der Suche nach einer Programmiersprache, mit der ich Bilder bearbeiten oder ganze Aktionen ausführen kann auf Python gestoßen.
Jetzt nach den ersten paar Schritten stoße ich schon auf das erste Problem und zwar die Performance.
Ich öffne ein Bild und wende dort einen Image.Filter an "GaussianBlur" an. Dieser dauert leider ganz schön lange, jetzt hab ich im Internet etwas über Multiprocessing gefunden und frage mich ob ich das auch auf die Image.Filter anwenden kann? Das z.B 4 Kerne den GaussianBlur berechnen, ist das möglich?

Gruß
Norman

Re: Multiprocessing und ImageFilter

Verfasst: Donnerstag 18. April 2013, 16:52
von BlackJack
@Loonix: Das ist nicht so ohne weiteres möglich, da das ja schon in dem C-Code vorgesehen sein müsste, der diesen Effekt berechnet. Falls Du mehrere Bilder verarbeitest, könnte man *das* vielleicht parallelisieren.

Re: Multiprocessing und ImageFilter

Verfasst: Freitag 19. April 2013, 12:23
von Loonix
Erstmal vielen Dank für die Antwort, sowas hab ich mir schon fast gedacht :-(.
Ich versuche den Performancenachteil von PIL jetzt mit PythonMagick zu umgehen, da dort manche Filter um einiges schneller arbeiten.
Ich habe mir jetzt zwei Funktionen geschrieben, eine die reine PIL Effekte ausführt und das fertige Ergebnis dann zurück gibt.
Die zweite Funktion bekommt dann den Rückgabewert von der ersten Funktion und arbeitet mit PythonMagick. Das funktioniert auch.
Was ich jetzt nicht hinbekomme ist, dass ich Daten die, mit PythonMagick erstellt wurden wieder an PIL übergebe um damit weiter zu arbeiten.
Ich habe gesucht und immer wieder was PythonMagick.Blob oder nur Blob gefunden. Bin ich da auch der richtigen Spur? Leider finde ich da keine gute Erklärung.

Re: Multiprocessing und ImageFilter

Verfasst: Freitag 19. April 2013, 13:10
von schaeffkoch
vielleicht noch als idee für das filtern scipy oder opencv verwenden?
http://scipy-lectures.github.io/advance ... rocessing/

gaussian-blur ist mit beiden moeglich.