KunstNet uses Cookies. Details.
  • Perspektivisches Zeichnen - Fluchtpunkte

  • D-8

    diese krümmungen sind so gering dass sie auf einem foto kaum oder gar nicht auffallen, wenn doch dann kann man sie mit einem bildbearbeitungsprogramm "entkrümmen".
    daher kann man das bild dann wirklich behandeln als sei es von fluchtpunkten "abhängig".

    Ein "Entkrümmen" ist nur auf den ersten Blick aber nicht tatsächlich möglich. Das ist prinzipbedingt. Es ist aber natürlich richtig, dass Krümmungen sehr gering ausfallen können. Das ginge dann bei der Modellierung in 3D zu Lasten der Genauigkeit; der Fehler könnte aber durch mehrere Rechtecke reduziert werden.


    Du hast (nach meinem Vorschlag) 4 2D-Koordinaten (XY) eines Rechtecks im Raum. Des Rechtecks Eigenschaften und das ist der springende Punkt - rechter Winkel und gleich lange, gegenüberliegende Seiten - reichen aus, um in Verbindung mit der Brennweite über eine Transformationsmatrix (2D->3D) die 3D-Koordinaten (XYZ) zu berechnen. Wobei der Sonderfall, dass das Rechteck auch in 2D ein Rechteck bzw. annähernd eines ist noch nicht berücksichtigt ist; es wäre also besser, je mehr Rechtecke man hat.

    EDIT:
    also ich glaube ich habe verstanden was du meinst.
    genau das selbe hat mir wie sdhcon mal erwähnt ein kollege auch vorgeschlagen.
    Also ich soll die kamera des 3dFenster so verschieben, dass sie in etwa der perspektive auf dem Bild entspricht(könnte man z.b. mit einem würfel machen,der den 3d raum representatieren soll, den man rotiert, skaliert und verschiebt).
    Wie auch meinem Kollegen muss ich dir sagen, dass das nur klappt wenn du annimmst dass alles was auf dem bild zu sehen ist eine Fläche ist und dass somit alle koordinaten den selben höhen wert haben(z.b. y=0).

    Nein. So meine ich das nicht und das funktioniert auch nicht, keine Frage.


    Ich sagte ja schon, wenn du auf dem bild ein viereck zusammenklickst gibt es in 3d unendlich viele möglichkeiten für dessen position und größe.
    so kannst du niemals wissen ob das viereck vor oder hinter einem anderen liegt und ob es kleiner oder größer ist. Es ist wichtig dass du das verstehst, mach einmal bitte folgenden test:
    schneide aus einem papier ein 3x3cm quadrat und ein 9x9cm quadrat aus. Nun halte dir das 3x3cm quadrat vor dein auge, es verdeckt nun einen teil des raums, so dass man nicht weiß was dahinter ist.
    Nun nimm dein 9x9cm quadrat und halte es hinter das 3x3cm quadrat und zwar so dass das 3x3cm quadrat das 9x9cm genau überdeckt. Nun haben wir so eine situation. Hast du das problem verstanden? es gibt unendlich viele kombinationen von größe und position für das viereck!
    deswegen wird deine methode leider nicht funktionieren :-D

    Ich weiss, was Du meinst, aber das trifft nur in dem Sonderfall zu, den ich oben schon erwähnte.
    Du gehst von einer linearen perspektivischen Verkürzung (Vier-Strecken-Satz) aus und die gibt es nicht - ausser in der Kunst, bei den Halbgeraden von einem Fluchtpunkt aus.
    Ein 3-dimensionales Rechteck verändert seine Verzerrung in 2D, wenn man es an Z in den Raum hinein oder heraus verschiebt. - Also, die Längenverhältnisse der Kanten und die Winkel; dabei ist gleichgültig, ob man es auf die gleiche Grösse skaliert.

    Ich hoffe, ich konnte meine Vorstellung jetzt besser formulieren, denn ich wüsste nicht, wie ich es ohne grossen Aufwand über das Forum sonst herüber bringen könnte.
  • emanon
    Ich habe mir schon eine Reihe Fotos vorgenommen und FLuchtpunkte angezeigt und bei allen waren die Krümmungen so geringfügig, dass es überhaupt nicht auffällt. Und die Ungenauigkeiten die auftreten kann man getrost ignorieren...

    Du gehst von einer linearen perspektivischen Verkürzung (Vier-Strecken-Satz) aus und die gibt es nicht - ausser in der Kunst, bei den Halbgeraden von einem Fluchtpunkt aus.

    Es macht nun mal nicht viel Sinn etwas anderes als das standard 3d koordinatensystem zu verwenden, etwas anderes würde nicht viel Sinn machen, wenn man an die koordinaten kommen will...

    Ein 3-dimensionales Rechteck verändert seine Verzerrung in 2D, wenn man es an Z in den Raum hinein oder heraus verschiebt. - Also, die Längenverhältnisse der Kanten und die Winkel; dabei ist gleichgültig, ob man es auf die gleiche Grösse skaliert.

    Das ist nicht richtig. Ich bin mir auch nicht sicher ob du mich richtig verstanden hast. Die Größe spielt hier sehr wohl eine Rolle!Ein nah entferntes kleines viereck
    und ein viel weiter entferntes großes viereck können auf dem 2dbild die selbe fläche einnehmen!
    Daher IST ES UNMÖGLICH die korrekte poisition und größe ohne zusätzliche informationen zu ermitteln, da das 2D bild diese informationen einfach nicht bietet, selbst wenn man den selben blickwinkel nachkonstruiert hat.

    Nimm dir einfach mal irgendein Foto raus, am besten von architektur und male da ein schwarzes viereck mit paint rein. Ist dir nicht klar dass dieses viereck wenn man es von 3d betrachtet ein unendlich tiefer 3d körper ist(stell dir einfach vor du würdest von dem betrachter standpunkt strahlen auf die eckpunkte schießen)? Genauso wie jeder Punkt den du auf dem 2d bild setzt in 3d eine halbgerade ist.

    Da wir ja am Ende X,Y,Z koordinaten haben wollen für jeden punkt den wir in 2D setzen müssen wir von einem 3D koordinatensystem ausgehen und ausgehend von diesem System kann man von einem 2D bild für ein viereck über eine inverse matrix keine korrekten koordinaten errechnen.Das ist kein Sonderfall das tritt immer auf und ist DAS problem überhaupt.

    ich weiß nicht wieso du denkst dass man das Fluchtpunktsystem hier nicht verwenden kann, was denkst du denn wie das in Spielen und vor allem in 3D Renderings funktioniert. Diese 3D renderings sind mittlerweile so realistisch dass man sie nicht mehr von der Realität unterscheiden kann(man denke nur an all die architektur-visualisierungen mit CAD-programmen) und hier wird nicht mit krümmungen gearbeitet, sondern es ist ein fluchtpunkt basiertes system(etwas anderes macht wie gesagt keinen sinn), da kannst du sagen was du willst :-P

    p.s.: achja diese diskussion ist für mich eigtl. sinnlos, da ich weiß dass meine Methode funktioniert.
    Ich schreibe an dem programm schon etwas länger und habe alles bereits getestet.Ich habe diese Beitrag nur erstellt weil meine Technik für gewisse fluchtpunkt kosntellationen nicht funktioniere würde, nun bin ich aber 100% sicher dass diese konstellationen bei fotos nicht auftreten können. Die von dir angesprochenen Probleme treten bei mir nicht auf, wenn ein bild eine zustarke linsenkrümmung aufweist kann ich die so korrigieren, dass es nicht auffällt.
  • D-8

    Ein nah entferntes kleines viereck
    und ein viel weiter entferntes großes viereck können auf dem 2dbild die selbe fläche einnehmen!
    Daher IST ES UNMÖGLICH die korrekte poisition und größe ohne zusätzliche informationen zu ermitteln, da das 2D bild diese informationen einfach nicht bietet, selbst wenn man den selben blickwinkel nachkonstruiert hat.


    Bei einem Viereck stimmt das. Ich schreibe aber immer von Rechtecken in Verbindung mit der Brennweite und darüber hinaus kann man die Rechtecke untereinander vergleichen.


    ich weiß nicht wieso du denkst dass man das Fluchtpunktsystem hier nicht verwenden kann, was denkst du denn wie das in Spielen und vor allem in 3D Renderings funktioniert.

    Die Technik ist mir bekannt.


    p.s.: achja diese diskussion ist für mich eigtl. sinnlos, da ich weiß dass meine Methode funktioniert.
    Ich schreibe an dem programm schon etwas länger und habe alles bereits getestet.Ich habe diese Beitrag nur erstellt weil meine Technik für gewisse fluchtpunkt kosntellationen nicht funktioniere würde, nun bin ich aber 100% sicher dass diese konstellationen bei fotos nicht auftreten können. Die von dir angesprochenen Probleme treten bei mir nicht auf, wenn ein bild eine zustarke linsenkrümmung aufweist kann ich die so korrigieren, dass es nicht auffällt.

    Schön, dann ist ja alles OK. Und Viel Erfolg bei der weiteren Entwicklung!
  • Jetzt bei Amazon günstig Kunstbedarf kaufen.- Werbpartner -
  • emanon
    ich habe mal ein bild für dich in paint gemalt, erkläre mal bitte wie deine methode erkennt dass die weißte fläche das dach/decke des würfels darstellt und nicht wie im Bild darunter einfach eine weiter entfernte fläche ist...

    🔗
  • D-8
    ich habe mal ein bild für dich in paint gemalt, erkläre mal bitte wie deine methode erkennt dass die weißte fläche das dach/decke des würfels darstellt und nicht wie im Bild darunter einfach eine weiter entfernte fläche ist...

    Dass es sich dabei um das Dach handelt, bräuchte man in dem Fall bei meinem Ansatz ger nicht erkennen, weil das der Benutzer, ohne es zu merken, dem Programm mitteilt. Bleiben wir bei diesem einfachen Beispiel: Der Benutzer müsste die 7 Punkte anklicken, danach für jedes der 3 Quadrate 4 Punkte markieren und diese als Rechtecke definieren. Dann wüsste das Programm, dass um den mittleren Punkt (auf Deiner Zeichnung) 3 rechte Winkel sind, was hiesse, dass es sich um eine Ecke im Raum handelt.
    Aber ich muss noch einmal anmerken, dass das natürlich nur geht, wenn man geometrische Figuren hat, über die man genug weiss. Bei mehr oder weniger beliebigen Formen hat man keine Chance.

    Wie Du erwähntest, bist Du über diesen Schritt auf einem anderen Weg schon hinaus und da es sich um Deine Entwicklung handelt und ich in der Hinsicht keine Ambitionen habe, würden wir nur Zeit vergeuden, wenn wir eingehender darüber diskutieren würden.
    In diesem Sinn, nochmals viel Erfolg und falls angestrebt gute Verkäufe.
  • emanon
    ja mir ging es nur darum das zu begreifen ^^...

    ok jetzt hab ich's endlich geschnallt. Das Problem ist nur dass diese Methode deutliche einschränkungen mit sich bringt und wie du selbst gesagt hast bei beliebig komplexer geometrie versagen würde.

    Meine Methode funktioniert ganz anders. Alles ist Punkt basiert. Der user klickt die Punkte auf das bild und diese werden sofort umgerechnet.Daher muss er lediglich alle eckpunkte im Bild anklicken.
    Ich denke wenn ich komplett fertig bin mit meinem Programm dann werde ich mich mal daran machen einen corner-detection algorithmus auszuprobieren und eine automatische triangulation zu versuchen...

    momentan ist es so, dass ich das alles nur als hobbyprojekt mache, ich bin mir nicht so sicher ob der absatzmarkt für mein prog. groß genung wäre...
  • lsheohp
    Ich beschäftige mich schon seit über 10 Jahren mit 3D Grafik / Animation. Es hat schon so viele Versuche gegeben 3D Modelle aus Fotos herzustellen und bis jetzt gibt es kein Programm, dass ein wirklich zufriedenstellendes Ergebnis liefert. Damit das richtig funktioniert brauchst Du mindestens drei Ansichten und gemeinsame Punkte in jedem Bild. Koordinaten für einen Fluchtpunkt gibt es nicht im 3 dimensionalen Raum - der liegt im unendlichen, da sich parrallele Linien bekanntlich nur dort treffen - also nie.

    Beim sogenannten "camera tracking" wird ein oder mehrere Quadrate / Rechtecke in der Szene, deren Maße bekannt sind, vorausgesetzt. Anhand dieser Daten kann man dann besten falls Kameraposition und -winkel, sowie Bildwinkel ermitteln, um dann 3D-Objekte perspektivisch korrekt in ein Bild hinein zu setzten - und Bewegung zu verfolgen. Die Maße, Proportionen und Position anderer Objekte sind so nicht wirklich zu Ermitteln - da anhand nur eines Bildes die Tiefe (also wie weit ein Punkt von der Kamera entfernt ist) nicht bekannt ist - und nur durch eine zusätzliche Seitenansicht gegeben werden kann.

    Der Absatzmarkt wäre sehr gross - ich denke da nur an die Filmbranche, wo andauernd mit realen Bildern getrickst wird - aber, wie gesagt, Hersteller der teuersten und umfangreichsten 3D-Programme haben das bis jetzt nicht hinbekommen. Wenn Du also etwas brauchbares zustande bringst, würde ich das gerne mal austesten.

    Grüße,
    Peter
  • Page 2 of 2 [ 27 Posts ]

  • Sign in to respond or to ask a question.

Related topics and pictures