www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Vorhilfe
  Status Geisteswiss.
    Status Erdkunde
    Status Geschichte
    Status Jura
    Status Musik/Kunst
    Status Pädagogik
    Status Philosophie
    Status Politik/Wirtschaft
    Status Psychologie
    Status Religion
    Status Sozialwissenschaften
  Status Informatik
    Status Schule
    Status Hochschule
    Status Info-Training
    Status Wettbewerbe
    Status Praxis
    Status Internes IR
  Status Ingenieurwiss.
    Status Bauingenieurwesen
    Status Elektrotechnik
    Status Maschinenbau
    Status Materialwissenschaft
    Status Regelungstechnik
    Status Signaltheorie
    Status Sonstiges
    Status Technik
  Status Mathe
    Status Schulmathe
    Status Hochschulmathe
    Status Mathe-Vorkurse
    Status Mathe-Software
  Status Naturwiss.
    Status Astronomie
    Status Biologie
    Status Chemie
    Status Geowissenschaften
    Status Medizin
    Status Physik
    Status Sport
  Status Sonstiges / Diverses
  Status Sprachen
    Status Deutsch
    Status Englisch
    Status Französisch
    Status Griechisch
    Status Latein
    Status Russisch
    Status Spanisch
    Status Vorkurse
    Status Sonstiges (Sprachen)
  Status Neuerdings
  Status Internes VH
    Status Café VH
    Status Verbesserungen
    Status Benutzerbetreuung
    Status Plenum
    Status Datenbank-Forum
    Status Test-Forum
    Status Fragwürdige Inhalte
    Status VH e.V.

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:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
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.vorhilfe.de