2017-09-17 3 views
0

Ich versuche, die 3D-Koordinaten und die Ausrichtung eines Objekts aus seiner Projektion auf ein Bild mit einer einzigen Kamera mit openCV zu bekommen. Ich habe gelesen und die folgenden Schritte sind: Kalibrieren des Bildes, um die Rotations-und Translationsmatrizen zusätzlich zu der Matrix k zu erhalten. Ich habe viele Beispiele mit einem Schachbrett gefunden ->https://littlecodes.wordpress.com/2013/06/24/calibracion-de-camaras-y-procesamiento-de-imagenes-ii/. Aber meine Frage ist: Sobald diese Parameter erhalten wurden, wie bekomme ich die Position eines anderen Objekts? Ich habe keine vollständigen Beispiele gefunden, nur mathematische Erklärungen, die ich nicht ganz verstehe. Etwas wie this, aber mit den Matrizen und in der Lage, die Ausrichtung mit einiger Genauigkeit zu erhalten.So erhalten Sie die 3D-Position von einem 2D mit opencv

Ich habe bereits das segmentierte Bild, und ich kann die Punkte der Ecken lokalisieren.

So etwas ist, was ich zu bekommen: Video

Gruß und Dank.

Antwort

0

Sie können verwenden, um die Rotations-und Translationsvektoren zu erhalten und dann cv2.projectPoints verwenden, um die 3D-Punkte auf die Ebene zu projizieren. Es gibt ein vollständiges Tutorial zu diesem Thema here.

+0

Danke für den Kommentar, ich versuche es –

0

Sie müssen das Objektmodell in seinen Koordinaten kennen, um die Position des Objekts durch Lösen des Problems Perspektive-n-Punkt abzurufen (zB mit dem cv :: solvePnP oder cv: : solvePnPRansac Funktion in OpenCV enthalten).

Versuchen Sie, in visuelle Referenzmarken zu schauen und schätzen Sie diese spezielle Art von Referenzobjekten. Marker sind Objekte, die (auch) dies tun. Es ist eine gute Vereinfachung, ausgehend vom ursprünglichen PnP-Problem, und Sie können besser verstehen, was vor sich geht. Nachdem Sie verstanden haben, was unter der Haube passiert, können Sie das mit jedem Objekt tun, von dem Sie ein Modell haben.

Verwandte Themen