Numerisches 2D-Array drehen

9

Ich habe eine Reihe von Graustufenbildern als 2D-Nummernfelder.

Ich muss die Bilder um einen Punkt (in ihnen) unterschiedlicher Schwimmwinkel drehen. Die Drehung muss nicht vorhanden sein, und ich werde erlauben (natürlich, wenn ich das bis jetzt gut erklärt habe) für die Interpolation.

Ich würde gerne in numpy bleiben, da ich numerische Operationen für das Ergebnis durchführen muss, aber ich kann auch (wenn das nicht möglich ist) einen Step in / out ermöglichen; zum Beispiel habe ich versucht, PIL zu verwenden, nämlich Image.rotate (Theta), aber ich verstehe nicht, wie ich das auf meine Arrays anwenden kann und wie ich ein Array zurückbekomme.

Vielen Dank für Ihre Eingabe.

    
astabada 10.11.2011, 17:45
quelle

3 Antworten

3

Siehe den Kommentar von cgohlke 10. November 11 um 18:34:

Betrachten Sie scipy.ndimage.interpolation .shift ( ) und rotate () für interpolierte Translationen und Rotationen von 2D - numpy - Arrays.

    
Vasco 27.10.2014, 11:23
quelle
2

Die grundlegenden Operationen sind in der Wikipedia Transformationsmatrix Seite beschrieben - ich werde nicht versuchen, eine ASCII-Matrix zu erstellen Hier ist jedoch die Ausgabe P '= R * P, wobei P' der Ausgabepunkt ist, R die 2x2-Transformationsmatrix ist, die Sinus und Cosinus des Drehwinkels enthält, und P ist der Eingabepunkt. Wenn Sie sich um etwas anderes als den Ursprung drehen wollen, dann verschieben Sie den Ursprung vor der Drehung: P '= T + R * (P-T) wobei T die Translationskoordinate ist. Die grundlegenden Matrixoperationen führen keine Interpolation durch, wenn Sie also keine numberbasierte Bildverarbeitungsbibliothek , Sie möchten eine umgekehrte Transformation durchführen: Suchen Sie für jede (ganzzahlige) Ausgabekoordinate die (Gleitkomma-) Koordinate des Punkt, der darin gedreht werden würde, und den Wert dieses Eingabepunktes von den umgebenden Pixeln interpolieren.

    
Dave 10.11.2011 18:10
quelle
0

Ich möchte Hilfe von oben nehmen und dieses an einem Beispiel lösen:

%Vor%

, deren Ausgabe wie folgt aussehen wird:

%Vor%
    
Sandeep Sharma 19.08.2017 09:01
quelle