2012-07-07 13 views
9

मैं (सी ++) ओपनसीवी का उपयोग कर शिफ़्ट सुविधा निष्कर्षण के साथ काम करना शुरू करने की कोशिश कर रहा हूं। मुझे एसआईएफटी का उपयोग करके सुविधाओं को निकालने की ज़रूरत है, उन्हें मूल छवि (जैसे एक पुस्तक) और एक दृश्य के बीच मिलान करें, और इसके बाद कैमरे की गणना की गणना करें।शिफ्ट निष्कर्षण - opencv

अब तक मुझे SURF का उपयोग करके this algorithm मिला है। क्या किसी को बेस कोड पता है जिससे मैं शुरू कर सकता हूं, या शायद एसयूआरएफ से एसआईएफटी के लिंक में एल्गोरिदम को परिवर्तित करने का एक तरीका?

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

संपादित करें: ठीक है, मैंने शिफ्ट समस्या के लिए समाधान तैयार किया। अब मैं कैमरा पॉज़ को समझने की कोशिश कर रहा हूं। मैं उपयोग करने की कोशिश कर रहा हूं: resolPnP, क्या कोई मुझे उदाहरण के साथ मदद कर सकता है?

उत्तर

5

नई ओपनसीवी दस्तावेज़ वेबसाइट के feature2d tutorial section देखें। कोड के साथ ट्यूटोरियल दिखा रहे हैं:

  1. Feature detection उदा। सर्फ
  2. Feature Description
  3. Feature Matching
+0

धन्यवाद, लेकिन इस उदाहरण सर्फ के लिए कर रहे हैं। मुझे SIFT, या किसी भी एल्गोरिदम को SURF से SIFT में परिवर्तित करने की आवश्यकता है। – Filipe

4

आप छवि और दृश्य के बीच मिलान प्राप्त करने में कामयाब रहे है, तो मैं सुझाव है कि आप लागू सीवी :: findHomography()। यह 4 मैचों का उपयोग इनपुट के रूप में होमोग्राफी मैट्रिक्स की गणना करेगा।

आप सीधे होमोग्राफी मैट्रिक्स से कैमरा पॉज़ में कनवर्ट कर सकते हैं।

0

एसयूएफटी के बजाय एसआईएफटी का उपयोग करने के लिए, मैंने SurfFeatureDetector से SiftFeatureDetector और SurfDescriptorExtractor से SiftDescriptorExtractor बदल दिया। कुछ छवियों के लिए, मैंने पाया कि संयोजन एसयूआरएफ डिटेक्टर < -> एसआईएफटी डिस्क्रिप्टर अपेक्षाकृत सटीक परिणाम उत्पन्न करता है, लेकिन आपको अपनी आवश्यकताओं के आधार पर अन्य संयोजनों (फास्ट डिटेक्टर - फिशर डिस्क्रिप्टर या ओआरबी डिटेक्टर - ब्रिस्स्क डिस्क्रिप्टर) के साथ प्रयोग करना चाहिए।

आपके प्रश्न के homography हिस्सा हल करने के लिए इस ट्यूटोरियल का पालन करें: Feature Matching and Homography

इसके अलावा, हो सकता है इस में मदद मिलेगी: Pose Estimation