000
20.02.2008, 01:26
Tankcommander
|
Hi erstmal. Ich habe mal eine etwas seltsame Anfrage und hoffe das Ihr mir helfen könnt. Ich bin auf der Suche nach einen Programm mit dem es möglich ist, Entfernungen oder Abmessungen von bestimmten Objekten in einem Bild festzustellen. Beispiel, man hat ein Bild (JPG, Bmp, whaterver) von einer Wand (frontal) mit einer Tür und einem Fenster. Man weiss wie groß die Tür ist, hat also einen bekannten Wert in cm,mm oder m. Nun setzt man mit hilfe des Programmes zwei Punkte, einen an der Oberseite der Tür einen an der Unterseite und gibt den Wert an. Wenn man nun noch Punkte an Ober-Unterseite des Fensters angibt müsste das Progamm dann anhand des ersten Wertes die Größe (in dem Fall, Höhe) des Fensters berechnen können. Von der Sache könnte man auch mit dem Höhenwert der Tür die Breite des Fensters berechnen. Das kann man auch noch weiterstricken. Wenn man zum Beispiel ein Foto hat, von einem Flur mit zwei Türen. Diesmal allerdings in Perspektive. Könnte man doch, indem man für beide Türen die gleichen Maße angibt, die Entfernung zwischen den Beiden feststellen, trotz perspektivischer Verschiebung. Geht das? Gibs sowas? Kennt jemand ein solches Programm? Wenn ja, woher bekomme ich es? Oder hat meine Logik schon wieder mal ein Loch.^^
So ein Programm könnte ich wirklich gut gebrauchen, bin für jede Hilfe dankbar.
--
Wenn wir unsere Richtung nicht verändern, werden wir dort enden, wohin wir gehen. -Sprichwort, China Meine Modelle
Dieser Beitrag wurde am 20.02.2008 um 01:32 von Tankcommander bearbeitet.
|
|
Profil || Suche
|
001
20.02.2008, 01:52
Exec
|
was ich mir vorstellen könnte wäre soetwas mithilfe der pixel zu messen. aber das wäre dann nur sehr eingeschränkt nutzbar. (bilder ohne großartige perspektive)
wie willst du einem programm denn beibringen was wie lang ist?
das wäre ne gute aufgabe für ein solchen programm... http://www.c-u-w.com/blog/media/6dez_zentral.jpg
ich bin mal auf weitere antworten gespannt
--
"selbermachen rockt am meisten :D" - -LeJean-
|
|
Profil || Suche
|
002
20.02.2008, 02:15
Tankcommander
|
Hätte nicht gedacht das um diese Zeit noch Jemand antwortet.:D Nun ich dachte das es in etwa wie ein Lineal funktioniert, dessen Länge man selber bestimmt. Man setzt zwei Punkte bei Objekt1 und gibt an, von A nach B sind es zwei Meter. Dann gibt man nochmal zwei Punkte (A1,B1) bei Objekt2 an, welches man messen möchte. Wenn die Entfernung zwischen A1 und B1, sagen wir mal, um 50% Größer ist als die zwischen A und B ist das Objekt2 drei Meter lang. Man braucht aber auf jeden Fall erstmal eine Bekannte. Bei einer Perspektive müsste das Programm dann eine Formel verwenden. Bin keine Mathegenie, gibt aber sicher Formeln für perspektivische Verschiebung. Wenn man zwei Objekte mit der gleichen Größe angibt, aber bei einem die Eck-punkte näher zusammen liegen, muss dieses ja weiter vom Betrachter entfernt sein. Anhand von Position und dem Faktor der verkleinerung, müsste sich die Entfernung errechnen lassen.
--
Wenn wir unsere Richtung nicht verändern, werden wir dort enden, wohin wir gehen. -Sprichwort, China Meine Modelle
Dieser Beitrag wurde am 20.02.2008 um 02:42 von Tankcommander bearbeitet.
|
|
Profil || Suche
|
003
20.02.2008, 12:03
Tuboatse-Harald
|
Du weisst aber schon, was `perspektivische Verzerrung' ist? Ich glaub du stellst dir das leichter vor, als es ist.
--
Twisted and Brainfire. Das Fleisch ist willig und der Club ist eine Fleischerei!
|
|
Profil || Suche
|
004
20.02.2008, 18:55
Tankcommander
|
Tuboatse-Harald postete Du weisst aber schon, was `perspektivische Verzerrung' ist? Ich glaub du stellst dir das leichter vor, als es ist. Ja ich denke schon. Ich stelle mir die Berechnung von so etwas sogar recht schwer und ungenau vor, hallte sie aber nicht für unmöglich. Das spielt jetzt auch nicht wirklich eine Rolle, das perspektivische war ja eher ein Gedankenspiel.
Ich habe mal ein Bild genacht, um das was ich suche besser zu erläutern.

Das Programm könnte folgendermaßen funktionieren: Wir haben eine Bekannte, eine Star Trek Tür ist in etwa 2,10 Meter hoch. Dann haben wir im Programm eine Linie gemalt (blaue Linie) und angegeben das sie 2,10m lang ist. Das Programm geht nun davon aus das die Linie genau 210 cm enspricht. Nun sagen wir mal es gäbe ein unsichtbares Zentimeterraster, welches anhand der blauen Linie "gescaled" wird. (welch ein Unwort) Sprich das Raster wird so eingestellt das entlang der blauen Linie genau 210 Rastereinheiten liegen. So, jede weitere Linie, die wir nun einzeichnen wird "einfach" anhand des Rasters vermessen. Eigendlich, ein gepimptes virtuelles Lineal mit frei einstellbaren Dimensionen.
Um nochmal zum leidigen Thema der Perspektive zurück zu kommen.

Nun die Frage ist ob es auch trotz Perspektive möglich ist, die Länge einer Fläche zu berechnen obwohl nur die Höhe gegeben ist?
--
Wenn wir unsere Richtung nicht verändern, werden wir dort enden, wohin wir gehen. -Sprichwort, China Meine Modelle
Dieser Beitrag wurde am 20.02.2008 um 19:01 von Tankcommander bearbeitet.
|
|
Profil || Suche
|
005
20.02.2008, 20:03
Krifitze

|
Soweit ich das jetzt verstanden habe ist dein Programm einfach $Bildbearbeitungsprogramm + $Taschenrechner Weil so großartig perspektivisch ist das Ganze ja nicht, da man einfach frontal etwas aus gleichem Abstand vergleicht.
Edit: Ups, hab das zweite Bild nicht angeschaut...
--
Website
Dieser Beitrag wurde am 20.02.2008 um 20:05 von Krifitze bearbeitet.
|
|
Profil || Suche
|
006
20.02.2008, 21:50
Bluthund
|
Möglich ist das schon, das Problem liegt nur daran, dass du das Bild erstmal "verräumlichen" (urgs) musst. Denn wie soll sonst bekannt sein, wo deine Gerade sich im Raum befindet. Es müsste also erstmal eine Abbildung des 2D-Bilds in Ebenen im R^3 geschehen, um eine Bezugsgröße für die eingezeichneten Geraden zu finden. Aber gerade die Komponente der Räumlichkeit ist in nem Bild ja nicht gespeichert und ich persönlich halt es mehr oder weniger für ein Ding der Unmöglichkeit sowas automatisiert zurückzugewinnen (was nicht heißt, dass sich damit vielleicht findige Köpfe beschäftigen und auch schon Ansätze für Lösungen haben).
Bspw dein zweites Bild: Du weißt, dass die Wand die du gelb gekennzeichnet hast, eine Ebene darstellt. Da kannst wahrscheinlich sogar die Lage dieser Ebene im Raum grob rekonstruieren. Der Rechner wird wahrscheinlich auch noch erkennen können, dass aufgrund von Farbe und Konturen die Bildinformationen an dieser Stelle zusammengehörig sind. Wie daraus allerdings eine Ebene in den Raum zu stellen ist, weiß er nicht. Denn theoretisch könnte es ja auch eine allgemeine Vierecksfläche (mit linker Seite < rechter Seite) sein, welche genau senkrecht zum Vektor der Betrachterrichtung steht und damit keiner perspektivischen Verzerrung unterliegen würde.
Ohne die Komponente Mensch (bzw eine Uber-KI wie sie in ca 20 Jahren vorhanden sein soll) aber imho nicht realisierbar.
--
The C language combines all the power of assembly language with all the ease-of-use of assembly language. "humorig is n blödwort :>" by -CarniGGeLjumpR-
|
|
Profil || Suche
|
007
21.02.2008, 01:41
Tankcommander
|
Erstmal vielen Dank, das du dir die Zeit für diesen ausführlichen Post genommen hast. Leider lässt sich nicht ganz herauslesen ob sich der erste Teil des Postes auf Bild nummer eins bezieht, oder auf den Perspektivischen Teil (Bild zwei). Bei Bild nummer eins ist wäre es zu kompliziert gedacht. Das Bild fungiert quasi einzig und alleine als Reference für den User. Ich weis nicht ob du schonmal ein 3D-Model gemacht hast. Es ist so, wie wenn man eine Waffe modelt. Man sucht sich eine gute Seitenaufnahme, dann macht man das Model einfach so, dass es die Waffe auf den Bild komplett und möglichst genau verdeckt. So bekommt man fast perfekte Maße. Bei einem solchen Tool würde ich es mir auch so vorstellen. Man sucht ein Bild, fügt es ein, zieht eine Linie als Reference, gibt eine Größe an und jede weitere Linie wird nur anhand der ersten Linie gemessen. Eine reine 2D Rechenoperation also. Dem Programm ist es egal in welche Richtung die Linie zeigt, oder wo im Bild sie sich befindet. Es gibt keine anderen Bezugspunkte. Eingendlich könnte man das Bild auch ausdrucken und sich mit Bleistift, Lineal und Taschenrechner ranmachen, aber das wäre doch un1337. ;)
So nun zu Bild zwei. Deine Argumente sind plausibel, scheint warscheinlich nicht so zu gehen wie ich mir das Denke. Ich wollte vorhin noch mehr dazu schreiben, hatte aber keine Zeit mehr. Also ich dachte es folgendermaßen: Wir wollen die Länge der gelb markierten Wand bemessen. Das Problem ist hier die perspektive. Wir wissen wie hoch der Raum ist (drei Meter), also ziehen wir zwei Linien. Linie "A" am Anfang der Wand, und "B" am entfernten Ende der Wand. Würden wir nun den Abstand zwischen A und B messen, wäre die Wand zu kurz, weil sie ja "perspektivisch verschoben" ist. Nun dachte ich mir das Programm könnte doch anhand des Größen-Differenz (rote Linien) und der Entfernung der beiden Linien zueinander (gelbe Linie), die fehlende Distanz dazurechnen. wenn auch nur grob. Beispiel, zwei gleichgroße Linien (A1,B1) haben einen abstand von vier Metern zueinander. Wenn wir nun die Eckpunkte von A1 etwas zusammenziehen, sollte das Programm etwas zur gemessenen Entfernung hinzuaddieren. Ich hoffe ihr könnt mir noch folgen.^^ Ändert man die Tatsächliche entfernung zwischen den beiden Linien, müsste sich die gemessene Entfernung ebenfalls verändern. also wieder eine 2D-Rechenoperation. Aber ein Algorithmus für sowas ist sicher knackig. Ich weiss nicht, ob so ewas gehen könnte, ist sicher nur nen Denkfehler von mir. Ein Tool was sowas wie auf Bild eins berechnen kann, würde mir fürs erste auch reichen. _______________ Auszug Wikipedia:
Relative Größe
Ist uns die Größe eines Gegenstandes bekannt, können wir aus seiner relativen Größe (also wie groß er auf dem Retinabild ist), seine Entfernung abschätzen.
Beispiel: Sehen wir mehrere identische Objekte in unterschiedlichen relativen Größen, so „lesen“ wir diese als verschieden weit weg und nicht als verschieden große Exemplare, die sich in gleicher Entfernung befinden. _______________ Tja wir menschen können das, nun müssen wirs nur noch dem Computer beibringen...
--
Wenn wir unsere Richtung nicht verändern, werden wir dort enden, wohin wir gehen. -Sprichwort, China Meine Modelle
Dieser Beitrag wurde am 21.02.2008 um 01:46 von Tankcommander bearbeitet.
|
|
Profil || Suche
|
008
21.02.2008, 13:09
Chronial
|
Bild 1: Das Programm heist Photoshop, das Tool "Lineal" - von Pixeln in reale größe umrechnen können, wirst du selber können. Wenn du das aber natürlich uberl33t machen willst, kannst du auch einfach die DPI so einstellen, dass die blaue Linie 210cm hat - dann zeigt photoshop dir direkt die richtige Länge an.
Bild 2: Nicht möglich. Du hast soweit ganz richtig gedacht, und wie du das auch auf Wikipedia gefunden hast, macht das Auge das auch so. Jedoch hat das Auge eine Information, die dir im Bild fehlt. Du weist nicht, wie stark, die perspektivische Verzerrung ist - die hängt nämlich vom fov (Breite des Blickfeldes) und der Entfernung des Objektes ab. Kannst du selbst sehen, wenn du durch ein starkes Fernglas in die Ferne schaust - die perspektivische Verzerrung nimmt dabei stark ab. Du musst für solche Berechnungen auf jeden Fall wissen, wie viel Grad Sichtfeld, das Bild abdeckt, sonst geht da garnichts. Kannst du eventuell rekonstruieren, wenn du von einem Objekt im Bild alle Infos hast (zb: rechtwinklig, höhe + breite, winkel der Ecken) - bin mir aber nicht sicher. Also nochmal zum Verständnis: wenn Bild 2 stark perspektivisch verzerrt wäre, wäre die Gelbe Linie real kaum länger als auf dem Bild - wäre das Bild allerdings nur sehr schwach perspektivisch verzerrt, müsste sich B einen Kilometer hinter A befinden, dass die Strecken im Bild einen so starken Größenunterschied erhalten. Kurz: Generell ist das sicherlich möglich - die Infos, die du in Bild 2 markiert hast, reichen jedoch keineswegs aus.
--
"tsuji-giri" (japanisch) - ein neues Schwert an einem Passanten ausprobieren
Dieser Beitrag wurde am 21.02.2008 um 13:09 von Chronial bearbeitet.
|
|
Profil || Suche
|
009
21.02.2008, 14:02
crid
|
zusätzliches Problem: Du müßtest dem Programm die speziellen Eckdaten des Objektivs beibringen, mit dem das Foto aufgenommen wurde. Jedes Objektiv hat (besonders zu den Ecken hin) eine andere Verzeichnungscharakteristik (Verzerrung). Und die muß ja bei solchen Berechnungen mit berücksichtigt werden, sonst stimmt ja nix an den Maßen.. Letztendlich brauchst du ein Programm für Photogrammetrie. Nicht umsonst sind die aber in der Regel nicht ganz billig.
--
crid
|
|
Profil || Suche
|
010
21.02.2008, 14:49
Tankcommander
|
Ok, vielen Dank für die Infos. Ihr habt mir das plausibel erklärt. Das mit dem FOV kenne ich ja aus dem 3D-Bereich, hatte mich schon gefragt in wie fern, FOV, verwendetes Objektiv, Bildfokus und ähnliches bei den Berechnungen eine Rolle spielen würden. So scheint das aber tatsächlich nich zu Funktionieren.
Hab übrigens gestern Nacht noch ein Tool gefunden, das alle beschrieben Features von Bild eins besitzt. Ist ist haargenau so aufgebaut, wie ich es mir vorgestellt habe und funktioniert auch so... Es bietet sogar viele andere Sachen die mir gewüscht hatte, wie eine Exportfunktion, die alle Maße in eine Textdatei überträgt. Wermuttropfen, für ein so kleines Programm, ist es mit 52 Euro unerhört Teuer.

--
Wenn wir unsere Richtung nicht verändern, werden wir dort enden, wohin wir gehen. -Sprichwort, China Meine Modelle
|
|
Profil || Suche
|
011
21.02.2008, 20:15
McScore
|
Frag doch lieber in einem StarTrek-Forum nach den Enterprise D Blueprints (ja, gibt es wirklich) - das wird wohl noch besser werden.
--
... und der große böse Wolf bootete und bootete und bootete ... Optimiere deine Map, sieh dir alle Compile-Errors an, frage den Hersteller und beschwer dich über nichts! http://www.mcscore.de.vu 13+3+7=23, 133/7+23=42
|
|
Profil || Suche
|
012
22.02.2008, 00:10
Tankcommander
|
Habe ich schon gemacht. Ich besitze eine große Sammlung an Blaupausen, Skizzen und Fotos zu den verschiedensten Star Trek-Kulissen. Leider gibt es aber nicht für jeden Raum Blaupausen. Das Tool ist auch hilfreich dabei Skizzen mit Fotos abzugleichen. Ich sehe es als eine unterstützung des Augenmaßes.^^
--
Wenn wir unsere Richtung nicht verändern, werden wir dort enden, wohin wir gehen. -Sprichwort, China Meine Modelle
|
|
Profil || Suche
|