opencv

2012-06-18 13 views
6

में कैमरे की स्थिति और अभिविन्यास की गणना करना तो कल्पना करें कि एक कैमरा आपके कंप्यूटर स्क्रीन को देख रहा है। मैं जो करने की कोशिश कर रहा हूं वह यह निर्धारित करता है कि कैमरा कितना घुमाया गया है, स्क्रीन से कितना दूर है, और यह स्क्रीन के केंद्र से संबंधित है। संक्षेप में रोटेशन और अनुवाद matrices।opencv

मैं इसे करने के लिए ओपनसीवी का उपयोग कर रहा हूं, और इस कार्य को चेकरबोर्ड पैटर्न और वेबकैम से फ्रेम के साथ करने के लिए उनके कैमरे अंशांकन उदाहरण का पालन किया। मैं किसी भी जेनेरिक छवियों, अर्थात् एक स्क्रीन टोपी और वेबकैम से एक फ्रेम के साथ करना चाहता हूं।

मैंने दोनों छवियों के कीपॉइंट्स की सूची प्राप्त करने के लिए फीचर डिटेक्शन एल्गोरिदम का उपयोग करने का प्रयास किया है और फिर उन कुंजीपॉइंट्स को BFMatcher से मेल खाता है, लेकिन समस्याओं में भाग लेते हैं। विशेष रूप से SIFT कुंजीपटलों को सही ढंग से मेल नहीं खाता है, और SURF को स्केल की गई छवि पर सही बिंदु नहीं मिलते हैं।

क्या इस समस्या का कोई आसान समाधान है? मुझे लगता है कि यह एक आम बात होगी जो लोगों ने किया है, लेकिन ऑनलाइन इसकी अधिक चर्चा नहीं मिली है।

धन्यवाद !!

+2

आप छवि में अपनी स्क्रीन को खोजने का प्रयास क्यों नहीं करते हैं, और रूपरेखा पाते हैं? फिर, आप रोटेशन और अनुवाद पा सकते हैं क्योंकि आप स्क्रीन के वास्तविक आकार को जानते हैं, और छवि में यह आकार दिखाई देता है, और आप वास्तविक जीवन में आयताकार आकार की तुलना में छवि में स्क्रीन के आकार के आकार को भी जानते हैं। हमम .... दिलचस्प सवाल। +1 – eboix

+0

यह एक अच्छा सवाल है क्योंकि यह ठेठ प्लानर मार्कर कार्य नहीं है। +1 –

+0

@eboix, किसी भी मौके पर आप उन्मुख तकनीक और स्थिति निर्धारित करने के लिए ज्ञात दुनिया ज्यामिति और skewed छवि ज्यामिति का उपयोग करने में शामिल तकनीक साझा कर सकते हैं? मैं एक ही काम करने की कोशिश कर रहा हूं हालांकि कंप्यूटर स्क्रीन की बजाय मैं छत वाली रोशनी का उपयोग कर रहा हूं, जो ज्ञात आकार के हैं। – Lucas

उत्तर

3

प्राकृतिक प्लानर मार्कर ढूंढना कंप्यूटर दृष्टि में एक आम काम है, लेकिन आपके मामले में आपके पास स्क्रीन है जो आप स्क्रीन पर जो विज़ुअलाइज़ कर रहे हैं उसके आधार पर भिन्न होती है, यह आपका डेस्कटॉप, आपका ब्राउज़र, एक मूवी, ...

तो आप मार्कर पहचान के लिए सामान्य तरीकों को लागू नहीं कर सकते हैं, आपको आकार पहचान की कोशिश करनी चाहिए। एक विचार कण फ़िल्टर को अपने स्क्रीन फ्रेम के समान आयामों (विभिन्न तराजू के माध्यम से) के आयताकार टेम्पलेट पर, पहले किनारे का पता लगाने का प्रयास कर रहा है।

कण फ़िल्टर फ्रेम के क्षेत्र में टेम्पलेट को फिट करेगा। ऐसा करने के बाद, आप स्थिति जान लेंगे। अभिविन्यास के लिए आपको होमोग्राफी की गणना करने की आवश्यकता होगी, और इसके लिए आपको "मार्कर" में 4 अंक चाहिए, ताकि आप डायरेक्ट लीनियर ट्रांसफॉर्म (सीवी :: findHomography() आपके लिए यह कर सकें)। तो आपके चार अंक चार कोनों हो सकते हैं। यह सिर्फ एक विचार है, शुभकामनाएं!

+0

यहां आपके कुछ कण फ़िल्टर के समान अनुप्रयोग को समझाते हैं। यह एक अधिक सामान्य टेम्पलेट से मेल खाता है और ठीक काम करता है, इसलिए आपके आवेदन के लिए आकार बेहतर होता है क्योंकि आकार हमेशा समान होता है: http://www.slideshare.net/Javier_Barbadillo/single-person-pose-recognition-and-tracking- 7742854 –

+0

हालांकि यह एक ही पैमाने पर आवश्यक नहीं होगा। उदाहरण के लिए जब कैमरा स्क्रीन से "नीचे" स्क्रीन को देख रहा है, तो कैमरे सीधे दिखने की तुलना में चौड़ाई लंबी होगी। – user1463993