Drehen numpy 2D-array
Habe ich eine Reihe von Graustufen-Bilder als 2D-numpy-arrays.
Ich brauche um die Bilder zu drehen über einen Punkt (in Ihnen) von verschiedenen, float Winkel. Die rotation muss nicht sein, und ich werde zulassen (natürlich, wenn ich gut erklärt, bisher) für die interpolation.
Ich würde gerne bleiben in numpy, als ich brauchen, um numerische Operationen auf das Ergebnis, aber ich kann auch (wenn das unmöglich ist) kann step-in/out; so habe ich beispielsweise versucht, mit Hilfe von PIL, nämlich Bild.drehen(theta), aber verstehe nicht, wie sich zu bewerben, um meine arrays sind und wie man ein array zurück.
Vielen Dank für Ihre Eingabe.
Ich änderte Ihr 'greyscale' - tag zu 'Bildverarbeitung'. Ich denke, es beschreibt, besser Ihre Absichten. Fühlen Sie sich frei, es zu ändern zurück
Dies können Sie direkt in numpy, aber für die Umwandlung hin und her, siehe effbot.org/zone/pil-numpy.htm.
Danke für die Ratschläge, ich habe gerade bemerkt, daß dieser box!
Ihre zweite link hat einen Tippfehler (domain-name sollte scikit-image.org), wie steht es aktuell die links zu spammer.
Dies können Sie direkt in numpy, aber für die Umwandlung hin und her, siehe effbot.org/zone/pil-numpy.htm.
Danke für die Ratschläge, ich habe gerade bemerkt, daß dieser box!
Ihre zweite link hat einen Tippfehler (domain-name sollte scikit-image.org), wie steht es aktuell die links zu spammer.
scikits-image
war umbenannt scikit-image
nach meinem Kommentar.InformationsquelleAutor astabada | 2011-11-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Siehe auch den Kommentar von cgohlke Nov 10 '11 at 18:34:
Betrachten scipy.ndimage.interpolation.shift() und rotate() für das interpolierte translation und Rotation von 2D-numpy-arrays.
In SciPy v1.1, ich denke, das ist jetzt scipy.ndimage.rotate() statt scipy.ndimage.interpolation.rotate().
InformationsquelleAutor Vasco
Den grundlegenden Betrieb sind beschrieben in der Wikipedia Transformationsmatrix Seite - ich werde nicht versuchen zu tun, ascii matrix art hier, aber die Leistung ist P' = R*P, wo P' ist der Ausgangs-Punkt, R die 2x2 matrix mit Sinus und Cosinus der Winkel, und P der Punkt des Eingangs. Wenn Sie drehen möchten, über etwas anderes als die Herkunft, dann die Verschiebung-der Ursprung vor der rotation: P' = T + R*(P-T), wo T ist die übersetzung zu koordinieren. Die grundlegende matrix-Operationen nicht tun, interpolation, also, wenn Sie nicht mit ein numpy-basierte Bibliothek für die Bildverarbeitung, werden Sie wollen eine reverse-Transformation: for each (integer-Wert) ausgegeben koordinieren, finden der (Gleitkomma -) Koordinate des Punkts, der würde gedreht werden, und interpoliert den Wert dieses input-Punktes aus den umliegenden Pixeln.
InformationsquelleAutor Dave