Saya memiliki kamera yang dikalibrasi dan memiliki parameter intrinsik. Saya juga memiliki parameter ekstrinsik relatif terhadap suatu titik (asal dunia) pada permukaan planar di dunia nyata. Poin ini telah saya tetapkan sebagai asal dalam koordinat dunia nyata [0,0,0] dengan normal [0,0,1].
Dari parameter ekstrinsik ini, saya dapat mengetahui posisi kamera dan rotasi dalam koordinat dunia 3d pesawat menggunakan ini di sini: http://en.wikipedia.org/wiki/Camera_resectioning
Sekarang saya memiliki titik kedua yang telah saya ekstrak koordinat gambar untuk [x, y]. Bagaimana saya sekarang mendapatkan posisi 3d dari titik ini di sistem koordinat dunia?
Saya pikir intuisi di sini adalah bahwa saya harus melacak sinar yang berasal dari pusat optik kamera (yang sekarang saya memiliki posisi 3D seperti dijelaskan di atas), melalui bidang gambar [x, y] dari kamera dan kemudian melalui pesawat dunia nyata saya yang saya definisikan di atas.
Sekarang saya bisa memotong dunia 3d ray koordinat dengan pesawat seperti yang saya tahu normal dan menunjuk pada pesawat itu. Yang tidak saya dapatkan adalah bagaimana saya mengetahui posisi 3d dan arah ketika meninggalkan bidang gambar melalui piksel. Ini transformasi melalui berbagai sistem koordinat yang membingungkan saya.
sumber
Jawaban:
Jika Anda memiliki ekstrinsik maka itu sangat mudah. Memiliki ekstrinsik sama dengan memiliki "pose kamera" dan sama seperti memiliki homografi. Periksa pos ini di stackoverflow.
Anda memiliki ekstrinsik, juga disebut pose kamera, yang digambarkan sebagai terjemahan dan rotasi:
Anda bisa mendapatkan Homografi dari Pose dengan cara ini:
Kemudian Anda dapat memproyeksikan poin 2D Anda ke poin 3D yang sesuai dengan mengalikan Homografinya dengan poin:
sumber
Anda memiliki dua opsi, gunakan kembali proyeksi atau proyeksi antara dua pesawat (homografi).
Dengan proyeksi belakang Anda mengambil pseudo kebalikan dari Anda matriks kamera dan mengalikan hasilnya dengan presentasi titik gambar yang homogen:P
Sekarang Anda memiliki garis 3D yang perjalanan melalui pusat kamera dan titik X . Jika mau, Anda dapat mengonversikan ini ke beberapa presentasi yang lebih mudah ditangani. Misalnya dengan satu titik dan vektor arah (ingat untuk menormalkan koordinat homogen V = ω [ X Y Z 1 ] T sehingga faktor skala ω = 1 sebelum perhitungan aktual):C X V =ω [ XYZ1]T ω = 1
sumber
Anda tidak dapat mengetahui posisi 3d dari poin kedua. Ini bisa berupa titik mana saja pada sinar dari pusat kamera Anda hingga tak terbatas.
Anda dapat melakukan hal berikut:
sumber