3 Stimmen

Rotation in Python mit ndimage

Ich muss viele Bilder in einem Ordner mit Python drehen. Ich habe herausgefunden, dass dies mit ndimage.rotate gemacht werden könnte. Aber ich habe ein Problem, da das Bild nicht gedreht wird: Ich warte und warte, und es dauert so lange...

Das ist der besprochene Teil meines Codes:

for image in filelist:
    print 'Checking ', os.path.basename(image)
    im = misc.imread(image)
    geom = im.shape
    print geom
    if geom[1] > geom[0]:
        # Einige Codezeilen, um zu bestimmen, wie das Bild gedreht werden sollte, was den Winkel berechnet
        print 'Drehen von ', os.path.basename(image)
        rotated = ndimage.rotate(im, angle, reshape = False)
        print 'Gedreht von ', os.path.basename(image)
        misc.imsave(image, rotated)
    else:
        print os.path.basename(image), ' ist OK'

Wenn ich es ausführe, funktioniert es wirklich langsam, etwa 20 Sekunden pro Bild. Wie kann ich es schneller machen? Ich würde mich über jede Hilfe freuen.

Und nur zur Sicherheit, ich bin kein professioneller Programmierer.

-2voto

Phlya Punkte 5396

Die Lösung besteht darin, anstelle von ndimage wie von deinonychusaur vorgeschlagen, PIL zu verwenden. Du könntest hier nachschauen: pythonware.com/library/pil/handbook/introduction.htm

Es enthält alles, was benötigt wird, um ein Programm mit PIL zu schreiben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X