Frage

Ich brauche ein Programm zu schreiben, die Matrixmultiplikation verwendet ein Bild (ein einfaches Quadrat) zu drehen, basierend auf der Mitte des Platzes, ein gewissen Grad auf dem, was ich brauche. Jede mögliche Hilfe auf diesem würde sehr geschätzt werden. Ich habe fast keine Ahnung, was ich tue, weil ich nicht so viel wie ein Blick auf Calculus genommen haben.

War es hilfreich?

Lösung

Hier finden Sie aktuelle http://www.aforgenet.com/framework/ . Dies ist ein kompletter Bildverarbeitungs-Framework in C #, die ich an einem Projekt bin mit. Ich habe gerade überprüft ihre Hilfe, und sie haben eine Funktion, die das tut, was Sie wollen -

// create filter - rotate for 30 degrees keeping original image size
RotateBicubic filter = new RotateBicubic( 30, true );
// apply the filter
Bitmap newImage = filter.Apply( image );

Es ist eine LGPL-Bibliothek, so dass, wenn die Lizenzierung ein Problem, wenn Sie gegen ihre Binärdateien verknüpfen, werden Sie keine Probleme haben. Ihr sind auch andere Bibliotheken gibt.

Wenn Sie sich entscheiden, es selbst zu schreiben, seien Sie vorsichtig über die Geschwindigkeit, wie C # tun Zahl Knirschen nicht groß ist. Aber es gibt Möglichkeiten, um es zu arbeiten.

Andere Tipps

Hier ist ein guter Projekt-Code Artikel über genau das, was Sie wollen:

http://www.codeproject.com/KB/GDI-plus /matrix_transformation.aspx

in der Ebene ein digitales Bild Rotierende läuft darauf hinaus, eine Menge 2X2 Matrix-Multiplikationen nach unten. Es gibt kein Kalkül hier beteiligt! Sie haben nicht eine gesamte Bildverarbeitungs Rahmen benötigen ein quadratisches Bild zu drehen - es sei denn, dies wirklich die Leistung empfindlich in Bezug auf Bildqualität und Geschwindigkeit.

Gehen und die erste Hälfte von Wikipedias Artikel auf der Rotationsmatrix lesen und das sollte erhalten Sie zu einem guten Start.

Auf den Punkt gebracht, gründen Sie Ihre Ursprung (vielleicht in der Mitte des Bildes, wenn das ist, wo Sie um drehen wollen), dann in Pixelraum berechnen die Koordinaten eines Pixels Sie drehen möchten, und vermehren sich durch Ihre Rotationsmatrix (siehe Artikel.). Sobald Sie die mehrfach getan haben, werden Sie Ihre neue Koordinaten des Pixels in Pixelraum haben. Schreiben darauf hin, dass Pixel in einem anderen Bildpuffer und Sie werden ab und Drehen sein. Wiederholen. Beachten Sie, dass, sobald Sie Ihre Drehwinkel kennen, können Sie nur einmal Ihre Rotationsmatrix berechnen müssen!

Haben Sie Spaß,

Paul

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top