2011-09-17 9 views
6

मैं यह पता लगाने का प्रयास कर रहा हूं कि दो विमानों के बीच एक होमोग्राफी कैसे लें और इसे एक प्रोजेक्टिव ट्रांसफॉर्म में परिवर्तित करें। Matlab यह स्वचालित रूप से करता है, लेकिन मैं यह पता लगाने की कोशिश कर रहा हूं कि matlab रूपांतरण कैसे लागू करता है।प्रोजेक्टिव ट्रांसफॉर्म के लिए होमोग्राफी

+0

आप किस MATLAB फ़ंक्शन के बारे में बात कर रहे हैं? – Jacob

+0

मैंने प्रत्यक्ष रैखिक परिवर्तन का उपयोग करके होमोग्राफी की गणना की है। मैं सोच रहा था कि maketform ('प्रोजेक्टिव', homographyMat) कैसे काम करता है। धन्यवाद! –

उत्तर

2

एक होमोग्राफी एक प्रोजेक्टिव ट्रांसफॉर्म है जो लाइनों के लिए लाइनों को मानचित्र बनाता है, पार अनुपात रखता है, लेकिन समांतरता या अन्य समानता परिमाण (कोण, दूरी, आदि) नहीं रखता है। एक होमोग्राफी को एक समरूप 3x3 मैट्रिक्स के रूप में व्यक्त किया जा सकता है, और आपकी समस्या के अनुसार कई (वास्तव में, कई) तरीकों से गणना की जाती है।

सबसे आम बात यह है कि दो विमानों के बीच 4 बिंदु पत्राचार निर्धारित करें और डायरेक्ट लीनियर ट्रांसफॉर्म (डीएलटी) का उपयोग करें। डीएलटी के कई कार्यान्वयन भी हैं। यदि आप ओपनसीवी से परिचित हैं, तो आप cv::findHomography (http://docs.opencv.org/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html?highlight=findhomography#findhomography) का उपयोग करके आसानी से ऐसे होमोग्राफी मैट्रिक्स प्राप्त कर सकते हैं।

सामान्य रूप से, मैं आपको हार्टले & ज़िसमैन से "एकाधिक दृश्य ज्यामिति" पुस्तक देखने के लिए अनुशंसा करता हूं, जो कंप्यूटर दृष्टि के संदर्भ में homographies की अवधारणा को विस्तार से समझाता है।

3

आप टूलबॉक्स \ छवियों \ छवियों में स्रोत कोड देख सकते हैं \ maketform.m

कम से कम संपादक के भीतर आप कार्यप्रणाली के नाम पर F4 को क्लिक करके इस के लिए मिल सकता है।

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