Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Bei Bild Perspektive rausrechnen (https://www.delphipraxis.net/150731-bei-bild-perspektive-rausrechnen.html)

R2009 25. Apr 2010 08:21


Bei Bild Perspektive rausrechnen
 
Hi,

ich möchte aus einem Bild, das schräg von einem Objekt aufgenommen wurde die Perspektive rausrechnen.
Hintergrund:
Wir versuchen, für den Modellbahnbereich, Häuser nachzubauen. Vorhanden sind, in beliebigem Winkel, aufgenommene
Fotos von dem Objekt.
Ich müsste das Foto so umrechnen, dass ich es frontal sehen kann.
Ich stelle mir vor, dass ich, auf dem Bild, ein Polygon (Viereck) einzeichne und anhand dieses Rahmens die Perspektive
korrigiere.
Es stehen jeweils 2 Fotos aus unterschiedlichen Richtungen zur Verfügung.

Hat jemand von euch sowas schon mal gemacht oder kann mir weiterhelfen?

Grüsse
Rainer

himitsu 25. Apr 2010 08:57

Re: Bei Bild Perspektive rausrechnen
 
Hmmmm, gemacht hatte ich es noch nicht, aber vermutlich würde ich es so lösen.
  • Erstmal den Mittelpunkt dieses Vierecks berechnen.
  • Dann jeweils einen Verzerrungsfaktor zu den jeweiligen Eckpunkten dieses Vierecks errechnen.
  • Nun könnte man über diese Faktoren errechnen wo die Eckpunkte des Bildes nach der Entzerrung liegen.

    Das Ergäbe dann den neuen Mittelpunkt des Vierecks im entzerrten Bild und zugleich die Größe des neuen Bildes.
  • Und jetzt geht man nur noch alle Bildpunkte des neuen Bildes durch, errechnet die jeweiligen Punkte im Original und holt sich von dort den entsprechenden Farbwert (eventuell auch noch interpoleriert aus den naheliegenden Punkten)

Coder 25. Apr 2010 08:58

Re: Bei Bild Perspektive rausrechnen
 
Du müßtest doch den Polygonen nicht nur 2 Achsen sondern 3 Achsen (Tiefe) also die dritte Dimension zuweisen - die kann nämlich bei Neigung unterschiedlich gestaucht sein.

Das ginge nur mit einem weitern Fenster für die Tiefe.
Aber dann brauchste das auch nicht mehr berechnen zu lassen.

Das ist wie Berechnen der WAVE Datei aus ner mp3 oder nem BMP aus JPEG.



Oder wie meinste das?

R2009 25. Apr 2010 10:46

Re: Bei Bild Perspektive rausrechnen
 
Hi,
ich habe mir das so vorgestellt:

1.) Ich setze über das Bild ein Viereck dessen Bild im berechneten Bild einem Rechteck entspricht.
Das könnte, im Original, z.B. ein Fenster eines Hauses sein.
2.) Aus diesem Viereck berechne ich dann die Verzerrungsfaktoren die zu einem Rechteck führen.

3.) Aus diesem Viereck berechne ich dann alle im Urbild (Original) vorhandenen Farbwerte um.

4.) Kenne ich ein einziges solches Viereck mit seinen Verzerrungen so kann ich daraus jeden Punkt berechnen.

4.) Dies gilt natürlich nur dann, wenn ich eine schräge Ebene abbilden will.

5.) Bei meinem Häuserproblem (Häuserfront) ist dies der Fall.

Grüsse
Rainer

Hawkeye219 25. Apr 2010 13:31

Re: Bei Bild Perspektive rausrechnen
 
Hallo Rainer,

für die Bibliothek Graphics32 gibt es eine Demo-Anwendung namens "ProjectiveForward". Du findest sie auf dieser Seite.

Gruß Hawkeye

R2009 26. Apr 2010 05:42

Re: Bei Bild Perspektive rausrechnen
 
Hi Hawkeye,
hab mir das angesehen, sieht wirklich sehr gut aus.
Ich denke damit ist mir geholfen.

Danke und Grüsse
Rainer

himitsu 26. Apr 2010 10:23

Re: Bei Bild Perspektive rausrechnen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Die Berechnung von aTopLeft, aTopRight, aBottomRight und aBottomLeft könnte man noch über einige Winkelfunktionen verbessern, aber sonst läuft's.
(Länge und Winkel der Linie ausrechnen, Linie verlängern und über Winkel neue Position bestimmen)

Und etwas Antialiasing kann auch nicht schaden.


PS: Statt dem 1.2 einfach mal was Anderes ins Edit eintragen, wie z.B. 1, 1.7 oder 2.

Reinhard Kern 26. Apr 2010 11:28

Re: Bei Bild Perspektive rausrechnen
 
Zitat:

Zitat von R2009
ich möchte aus einem Bild, das schräg von einem Objekt aufgenommen wurde die Perspektive rausrechnen.

Hallo,

musst du das selbst programmieren? Ich habe sowas vor einiger Zeit gemacht für Industrieaufnahmen (elektronische Geräte), muss aber bei Häusern genauso gehen: Paint Shop Pro hat dafür eine Funktion - Viereck zeichnen (z.B. auf die Hauswand) und Umrechnen lassen zum Rechteck. Geht ganz zackig.

Gruss Reinhard

alf.stefan 26. Apr 2010 12:50

Re: Bei Bild Perspektive rausrechnen
 
Wenn Es Dir um die Darstellung geht könntest Du das auch sehr elegant mit GLScene machen!

Bild in den Raum stellen und einfach das Bild drehen.
Oder das Bild auf ein sog. Frustum (sowas wie ein Pyramiden Stumpf) als Textur auf eine Seite zeichnen.
Bei der Frontalansicht entspricht der Winkel der Pyramide dem Aufnahmewinkel und somit auch der Pespektive.

Nur so als Anregung. :)

Gruß


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz