matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Mathe
  Status Schulmathe
    Status Primarstufe
    Status Mathe Klassen 5-7
    Status Mathe Klassen 8-10
    Status Oberstufenmathe
    Status Mathe-Wettbewerbe
    Status Sonstiges
  Status Hochschulmathe
    Status Uni-Analysis
    Status Uni-Lin. Algebra
    Status Algebra+Zahlentheo.
    Status Diskrete Mathematik
    Status Fachdidaktik
    Status Finanz+Versicherung
    Status Logik+Mengenlehre
    Status Numerik
    Status Uni-Stochastik
    Status Topologie+Geometrie
    Status Uni-Sonstiges
  Status Mathe-Vorkurse
    Status Organisatorisches
    Status Schule
    Status Universität
  Status Mathe-Software
    Status Derive
    Status DynaGeo
    Status FunkyPlot
    Status GeoGebra
    Status LaTeX
    Status Maple
    Status MathCad
    Status Mathematica
    Status Matlab
    Status Maxima
    Status MuPad
    Status Taschenrechner

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Dt. Schulen im Ausland: Mathe-Seiten:Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenLineare Algebra SonstigesRückprojektion von 2D in 3D
Foren für weitere Studienfächer findest Du auf www.vorhilfe.de z.B. Astronomie • Medizin • Elektrotechnik • Maschinenbau • Bauingenieurwesen • Jura • Psychologie • Geowissenschaften
Forum "Lineare Algebra Sonstiges" - Rückprojektion von 2D in 3D
Rückprojektion von 2D in 3D < Sonstiges < Lineare Algebra < Hochschule < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Lineare Algebra Sonstiges"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Rückprojektion von 2D in 3D: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 11:10 So 05.07.2015
Autor: Scholle3423

Aufgabe
Ich habe eine Menge von Bildern, die ein und das gleiche Objekt aus unterschiedlichen Perspektiven zeigt. Die unterschiedlichen Perspektiven wurden durch bewegen der Kamera erzeugt. Damit hat jedes Bild eine individuelle Projektionsmatrix.

Ich möchte nun für jedes Pixel eines Bildes den Strahl zurück ins Weltkoordinatensystem berechnen. Strahl deshalb, der bei der 3D zu 2D Projektion ja Informationen verloren gegangen ist.

Zuvor noch die Notation: Die Projektionsmatrix P ist 3x4, M ist der erste 3x3 Teil der Projektionsmatrix, t der Vektor der 4 Spalte von P. M^-1 ist die Inverse von M. X_real ist der (x, y, z) Vektor, der den Punkt im Real-Welt-Koordinatensystem, X_bild der (x y, 1) Vektor, der den Punkt des Bildes repräsentiert.

Meine Recherche hat bislang folgende Berechnungsformel ergeben.

C = M^-1 * t
X_real = M^-1 * X_bild + C

Ich habe die Formel für ein Bild/Projektionsmatrix angewandt, und das Ergebnis scheint mir nicht korrekt. Zudem verstehe ich nicht ganz, was der Vektor, den man erhält, genau aussagt. Wir können doch gar keinen Punkt in 3D rekonstruieren. Ist der gesuchte Strahl vielleicht die gedachte Gerade, die sich ergibt, wenn man den Ursprung des Weltkoordinatensystems und diesen Punkt verbindet?

Bin für jeden Hinweis dankbar?

Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.

        
Bezug
Rückprojektion von 2D in 3D: Antwort
Status: (Antwort) fertig Status 
Datum: 12:06 So 05.07.2015
Autor: Event_Horizon

Hi!

Im Prinzip hast du recht.

Physikalisch gesehen geht von jedem Punkt des Objekts ein Lichtstrahl exakt durchs Zentrum der Linse, und dann auf den Film / Sensor. Wenn du versuchst, die Abbildung umzukehren, bekommst du einen Richtungsvektor heraus, der (mit der Linse als Ursprung) so einen  Strahl beschreibt. Alle Punkte eines Strahls werden auf einen Punkt projiziert.

Da die Kamera verschiedene Positionen und Blickrichtungen im Raum haben kann, müßtest du darüber die Gradengleichung des Strahls in Weltkoordinaten umrechnen.

Aus zwei Bildern von unterschiedlichen Positionen bekommst du dann zwei Strahlen, die sich in einem Punkt treffen. So erhältst du die 3D-Koordinaten zurück.

In der Praxis wirst du das nie so exakt hin bekommen, die Strahlen werden immer etwas windschief sein. Hier wirst du die Linie der kürzesten Distanz berechnen, und den gesuchten Punkt genau da zwischen setzen. Mehr Fotos erhöhen die Genauigkeit durch mehr Statistik, allerdings wird dann auch die Berechnung schwieriger.



Bezug
                
Bezug
Rückprojektion von 2D in 3D: Frage (überfällig)
Status: (Frage) überfällig Status 
Datum: 12:35 So 05.07.2015
Autor: Scholle3423

Danke für die Antwort!

Hast du einen Ansatz, wie man den Richtungsvektor berechnet, der einen Strahl beschreibt, bzw. wie man den Punkt berechnet, auf den alle Punkte eines Strahls  projiziert werden?

Bezug
                        
Bezug
Rückprojektion von 2D in 3D: Fälligkeit abgelaufen
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 13:20 Di 07.07.2015
Autor: matux

$MATUXTEXT(ueberfaellige_frage)
Bezug
        
Bezug
Rückprojektion von 2D in 3D: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 22:25 Mi 08.07.2015
Autor: felixf

Moin!

> Ich habe eine Menge von Bildern, die ein und das gleiche
> Objekt aus unterschiedlichen Perspektiven zeigt. Die
> unterschiedlichen Perspektiven wurden durch bewegen der
> Kamera erzeugt. Damit hat jedes Bild eine individuelle
> Projektionsmatrix.
>  Ich möchte nun für jedes Pixel eines Bildes den Strahl
> zurück ins Weltkoordinatensystem berechnen. Strahl
> deshalb, der bei der 3D zu 2D Projektion ja Informationen
> verloren gegangen ist.
>
> Zuvor noch die Notation: Die Projektionsmatrix P ist 3x4, M
> ist der erste 3x3 Teil der Projektionsmatrix, t der Vektor
> der 4 Spalte von P. M^-1 ist die Inverse von M. X_real ist
> der (x, y, z) Vektor, der den Punkt im
> Real-Welt-Koordinatensystem, X_bild der (x y, 1) Vektor,
> der den Punkt des Bildes repräsentiert.
>  
> Meine Recherche hat bislang folgende Berechnungsformel
> ergeben.
>
> C = M^-1 * t
>  X_real = M^-1 * X_bild + C

Ich vermute mal, dass du [mm] $X_{bild}' [/mm] = [mm] \pmat{ x' \\ y' \\ z' }$ [/mm] aus [mm] $X_{real} [/mm] = [mm] \pmat{ x \\ y \\ z \\ w }$ [/mm] wie folgt berechnest: [mm] $X_{bild}' [/mm] = [mm] \pmat{ M & t } X_{real} [/mm] = M [mm] \cdot \pmat{ x \\ y \\ z } [/mm] + t [mm] \cdot [/mm] w$. Ich normalisiere die Vektoren absichtlich nicht (also ich erzwinge nicht $z' = 1$ und $w = 1$).

Damit wäre [mm] $\pmat{x \\ y \\ z} [/mm] + w [mm] \cdot M^{-1} [/mm] t = [mm] M^{-1} X_{bild}'$. [/mm] Dies kannst du auffassen als drei lineare Gleichungen in $x, y, z, w$; der Lösungsraum ist von der Form [mm] $\pmat{x \\ y \\ z \\ w} [/mm] = [mm] \pmat{x_0 \\ y_0 \\ z_0 \\ w_0} [/mm] + [mm] \lambda [/mm] $ mit [mm] $\lambda \in \IR$. [/mm]

Nun bekommst du hier für einen festen Wert von $w$ die Werte von $x, y, z$ direkt geliefert, da [mm] $\pmat{x \\ y \\ z} [/mm] = [mm] M^{-1} X_{bild}' [/mm] - w [mm] \cdot M^{-1} [/mm] t$ ist. Für $w = 0$ bekommst du [mm] $\pmat{x \\ y \\ z} [/mm] = [mm] M^{-1} X_{bild}'$, [/mm] und für $w = 1$ bekommst du [mm] $\pmat{x \\ y \\ z} [/mm] = [mm] M^{-1} X_{bild}' [/mm] - [mm] M^{-1} [/mm] t$. Damit ist die allgemeine Lösung [mm] $\pmat{x \\ y \\ z \\ w} [/mm] = [mm] \pmat{ M^{-1} X_{bild}' \\ 0} [/mm] - [mm] \lambda \cdot \pmat{ M^{-1} t \\ 1}$ [/mm] mit [mm] $\lambda \in \IR$. [/mm]

Wenn du nun zwei verschiedene Werte für [mm] $\lambda$ [/mm] einsetzt (die beide nicht 0 sind!) und den entsprechenden Vektor [mm] $\pmat{ x \\ y \\ z \\ w}$ [/mm] normalisierst (also durch $w$ teilst), bekommst du zwei verschiedene Punkte im dreidimensionalen Raum, die auf den gleichen Bildpunkt [mm] $X_{bild}'$ [/mm] abgebildet werden. legst du nun eine Gerade durch diese zwei Punkte, hast du eine Gerade die alle Punkte beschreibt, die auf diesen Punkt abgebildet werden.

LG Felix



PS: Wenn du [mm] $\lambda [/mm] = w = 1$ nimmst, bekommst du [mm] $\pmat{x \\ y \\ z} [/mm] = [mm] M^{-1} (X_{bild}' [/mm] - t)$, und wenn du [mm] $\lambda [/mm] = w = 2$ nimmst, bekommst du [mm] $\pmat{x \\ y \\ z} [/mm] = [mm] M^{-1} (X_{bild}'/2 [/mm] - t)$. Damit geht die Gerade durch den Punkt [mm] $-M^{-1} [/mm] t$ und hat den Richtungsvektor [mm] $M^{-1} X_{bild}'$. [/mm]


Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Lineare Algebra Sonstiges"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.matheraum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]