2013-04-19 6 views
7

मैं ट्राईऐन्ग्युलेशंस प्रक्रिया के लिए एक 3x4 कैमरा मैट्रिक्स लेकिन calibrateCamera() रिटर्न केवल 3x3 और 4x1 मैट्रिक्स प्राप्त करने की कोशिश कर रहा हूँ।मैं कैसे calibrateCamera से बाहर कैमरा प्रक्षेपण मैट्रिक्स प्राप्त कर सकते हैं() वापसी को महत्व देता

मैं उन मैट्रिक्स में से 3x4 कैसे प्राप्त कर सकता हूं?

अग्रिम धन्यवाद !!

उत्तर

9

calibrateCamera() आप
cameraMatrix के रूप में एक 3x3 मैट्रिक्स,
distCoeffs, और rvecs और tvecs कि 3x1 रोटेशन (आर) और 3x1 परिवर्तन (टी) मैट्रिक्स की वैक्टर हैं के रूप में एक 4x1 मैट्रिक्स देता है।

आप जो चाहते हैं वह प्रोजेक्शनमैट्रिक्स है, जो [कैमरा |ट्रिक्स] को [आर | टी] से गुणा कर रहा है। 3D into 2D Projection

इसलिए, यह आपको 3x4 प्रोजेक्शनमैट्रिक्स को पुनः प्राप्त करता है।
अधिक जानकारी के लिए आप OpenCV documentation पढ़ सकते हैं।

+0

आप कहते हैं कि हमारे पास 3x1 रोटेशन है, लेकिन नीचे दिए गए सूत्र में 3x3 (r_11, ..., r_33) है। वो कैसे संभव है? क्या आप कैममैट्रिक्स (3x3) और distMatrix (4x1) से प्रक्षेपण मैट्रिक्स की गणना के लिए कुछ सी ++ कोड जोड़ सकते हैं? – Dennis

+0

मुझे 'रोड्रिगेज' फ़ंक्शन को कॉल करने की ज़रूरत है, है ना? – Dennis

+0

यह सही है, Rodriguez रोटेशन वेक्टर को रोटेशन मैट्रिक्स में परिवर्तित करता है जिसे आप उपरोक्त सूत्र में उपयोग कर सकते हैं – Thesane

संबंधित मुद्दे