2010-09-13 3 views
11

Wir haben ein Raster mit roten Quadraten. Das heißt, wir haben eine Anordnung von 3 Quadraten (mit Winkeln == 90 Grad), die, wie wir wissen, die gleiche Größe haben, auf derselben Ebene liegen und mit derselben Drehung relativ zu der Ebene, auf der sie liegen, liegen und nicht auf derselben Linie liegen Ebene.Gibt es einen Algorithmus zur Lösung eines solchen geometrischen Problemes der Projektionsrekonstruktion?

Wir haben eine Projektion des Raumes, der die Ebene mit Quadraten enthält.

im 1

Wir wollen unsere ebene Projektion mit Quadraten drehen, damit wir es sehen würde, wie es uns konfrontiert ist, in der Regel brauchen wir eine Formel für jeden Punkt des ursprünglichen Ebene Vorsprung drehen, so dass sie gegenüber würde uns wie auf dem Bild unten.

Welche Formeln können verwendet werden, um ein solches Problem zu lösen, wie man es löst, hat irgendjemand so etwas schon einmal erlebt?

im 2

+2

Möchten Sie die Transformation im Bildschirmbereich (Pixel, 2d) oder im Welttempo (3D)? –

+0

Welche Datenstrukturen haben Sie als Eingabe? Punkte? Pixel? Geraden? –

+0

Geraden und Objekte (aber ich erzeuge tham von Pixeln =)) – Rella

Antwort

6

Dies ist ein Spezialfall von Zuordnungen zwischen Vierecken zu finden, die geraden Linien erhalten. Diese werden allgemein als homographische Transformationen bezeichnet. Hier ist einer der Quads ein Quadrat, das ist ein beliebter Sonderfall. Sie können diese Begriffe googlen ("Quad to Quad", etc), um Erklärungen und Code zu finden, aber hier sind einige für Sie.

Perspective Transform Estimation

a gaming forum discussion

extracting a quadrilateral image to a rectangle

Projective Warping & Mapping

ProjectiveMappings for ImageWarping von Paul Heckbert.

Die Mathematik ist nicht besonders angenehm, aber es ist auch nicht so schwer. Sie können auch einen Code von einem der obigen Links finden.

+0

OK, +1 für richtig, aber der Kommentar über die Mathematik ist unangenehm ist waaaayyyyy toooooooooo mild. Es ist nicht schwer pro Satz, aber zwischen der analytischen Seite (der reinen Mathematik), der diskreten Darstellung des Computers und der entsetzlich aufgelösten Darstellung des gerenderten Bildes wird es sehr, sehr, sehr hässlich. Außerdem wird die Mathematik extrem squiffy, wenn die Kamera "interessant" eingestellt ist, d. H. Fisheye oder extreme Telephoto-Grundlinie ist, dass die Bildcharakteristiken sehr sorgfältig eingeschränkt werden müssen, damit dies funktioniert.

+0

@Mark: Einverstanden - OP war bisher nicht sehr klar über Einschränkungen und Ziele. Und das Problem ist wohl, wenn man eine perspektivische Ansicht von 3 roten Quadraten ohne Raster betrachtet, um die 3 roten Quadrate in eine 2D-Ansicht zu bringen. Vielleicht ist das weniger ein Bildverarbeitungsproblem und mehr ein Registrierungsproblem. Wir warten also, bis das OP geklärt ist. In der Zwischenzeit war das meine beste Chance auf eine Antwort. – brainjam

+1

Die retinguierenden Formeln sind zu rechenintensiv, um POINTS zu transformieren, wie das OP gefordert hat ... aber in dem Problem, wie es vom OP angegeben wird, denke ich, dass eine geradlinige Transformation der richtige Weg ist. Ich habe die Mathematik für eine projektive Transformation mit zwei Escape-Punkten (mit einem CAS) berechnet, aber es ist zu lang und langweilig, als Antwort hier zu posten. –

Verwandte Themen