Projekt Tango benutzt doch spezielle, zusätzliche Sensoren, oder irre ich mich?
@zerosys
Exakt in die richtige Richtung weisen kann ich dich nicht, hab aber bereits für meine Bachelorarbeit recherchiert für nächstes Semester das sich mit einem ähnlichen Thema befassen wird.
Was direkt möglich ist, ist das Ausmessen von Höhe und Breite eines Gegenstandes welcher exakt parallel zur Kameralinse ist. Um da exakte Werte zu erhalten, brauchst du aber noch Informationen über den Sensor und das Objektiv, d.h. Pixeldichte und Brechungswinkel. Alternativ geht es näherungsweise mit einer Referenz.
Die Tiefe und nicht-parallele Gegenstände kannst du mit einer statischen Kamera nicht messen (außer du weisst dass es sich z.B. nur um Rechtecke handelt und kannst daraus etwas ableiten).
Dafür gibt es jedoch stereoskopische Aufnahmen - also Bilder von 2 Kameras (oder selbe Kamera aus zwei Winkeln, wenn der Aufbau das zulässt). Wenn du zu denen alle Werte kennst, kannst du sogar ohne Referenzwerte o.ä. bestimmen wie weit jeder Punkt auf dem Gesamtbild, entfernt ist.
Dafür gibt es Libraries die man einsetzen kann. Z.B. Libelas:
Autonomous Vision Group | MPI for Intelligent Systems
Wenn geschwindigkeit nicht an allererster Stelle liegt, kannst du dies auch mit OpenCV umsetzen. Eine sehr mächtige und einfach zu bedienende Lirbrary (API Sprachen gehen von nativem C++ bis hin zu Java und Python).
Mit der kannst du auch gleich Kameras ansprechen etc.
EDIT: Wie man in nehalist's Link sieht kann man sicher einiges an Tricks anwenden. Also Kameratracking und Lage-Sensoren verwenden, wobei das gewiss eher nur Näherungswerte ergibt.
Kommt auf die Problemstellung an. Hast du nur statische Bilder oder Video? Oder soll es eine App werden?