2010-09-28 13 views
7

का उपयोग करके एक असमानता मानचित्र का निर्माण करना मैं घर के बने स्टीरियो रिग से छवियों को इकट्ठा करने के लिए ओपनसीवी के लिए महान इमू सी # रैपर का उपयोग कर रहा हूं। दो वेबकैम लकड़ी के टुकड़े पर बोले गए, 35 सेमी दूर उम्मीद है कि मुझे 10-20 मीटर रेंज में गहराई के नक्शे का उत्पादन करने दें। मैंने उन्हें समानांतर होने के लिए सेट किया है क्योंकि मैं इसे बना सकता हूं (त्रिभुज परीक्षण से लगभग 89.3 डिग्री)।इगु (सी # के लिए ओपनसीवी) - cvStereoRectify

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

मैं इसे जिस तरह से इस प्रकार है करने के लिए समझ में के रूप में:


1) प्रिंट बंद एक बिसात पैटर्न (उदाहरण, 6 से 8 से भीतरी कोनों) - कुछ फ्लैट पर चिपके रहते हैं।

2) शतरंज बोर्ड को पूर्ण दृश्य में रखते हुए कैमरे 1 से लगभग 10 फ़ोटो का एक सेट लें, लेकिन अलग-अलग स्थितियां।

3) CameraCalibration.FindChessboardCorners का उपयोग भीतरी कोनों को खोजने के लिए (6 से 8 से)

4) img.FindCornerSubPix() का उपयोग उपपिक्सेल स्तर तक इन कोने स्थानों को परिष्कृत करने के

5) CameraCalibration.CalibrateCamera का उपयोग() आंतरिक कैमरा विवरण की गणना करने के लिए, और एक XML फ़ाइल

6 के रूप में इस बचाने के लिए) कैमरा 2.

7 के लिए ऊपर दोहराएँ) अब आप आंतरिक कैमरा विरूपण जानकारी आप एक स्टीरियो पी ले जा सकते हैं है हॉट जोड़ी और कैमरे कैलिब्रेशन का उपयोग करें। स्टीरियो कैलिब्रेट() आंतरिक डेटा के साथ पहले बाहरी जानकारी (ऑफसेट और कैमरे 1 और 2 के बीच घूर्णन) के लिए गणना करने के लिए गणना की जाती है।

8) CvInvoke.cvStereoRectify() और CvInvoke.cvInitUndistortRectifyMap() और फिर CvInvoke.cvRemap() का उपयोग आउटपुट छवि बनाने के लिए करें, जिसे वाई में रेखांकित किया जाना चाहिए ताकि आप स्टीरियो पत्राचार परीक्षणों में से किसी एक को चला सकें।

मुझे पता चला कि आपको cvStereoRectify को एक्सेस उल्लंघन उल्लंघन के बिना काम करने के लिए Emgu 2.1 ver 806 का उपयोग करने की आवश्यकता है।


मैं अपने सवाल लगता है कि कर रहे हैं:

ए) मेरी प्रक्रिया सही है? मैं कैमरे के अंदरूनी अंशांकन को एक अलग प्रक्रिया के रूप में कर रहा हूं क्योंकि कैमरे 35 सेमी के अलावा हैं, इसलिए दोनों को कार्यालय में दोनों को देखते हुए शतरंज प्राप्त करना आसान नहीं होता है और इसे बहुत आगे ले जाता है .. क्योंकि यह जल्द ही पक्ष से निकलता है कैमरे के विचारों में से एक का। मुझे लगा कि मूल्य आंतरिक हैं क्योंकि ये कैमरे से संबंधित हैं और इसलिए स्टीरियो प्रक्रिया को ठीक से स्थानांतरित करना चाहिए। क्या ये सही है?

ऐसा लगता है कि आंतरिक मूल्य cvStereoRectify प्रक्रिया के दौरान बदल रहे हैं, और बहुत अलग किए जा रहे हैं।

उदाहरण के लिए। पहले चरण = 0.22, -1.2,0.01, से विरूपण मूल्यों -0.01,2.6 के बाद cvStereoRectify मूल्य में परिवर्तित कर रहे थे = 10, -489, -0.03, -0.09,13208

मैं कोई विशेषज्ञ लेकिन पहले कर रहा हूँ ऐसा लगता है कि मैंने अन्य लोगों की टिप्पणियों से जो देखा होगा, और दूसरा सेट बहुत अच्छा लगता है!

बी) क्या cvStereoRectify के दौरान आंतरिक + विरूपण मूल्यों को अद्यतन करने का कोई तरीका है?

सी) क्या यह आंतरिक मूल्यों के लिए सही लगता है (937,0,290,0,932,249,0,0,1)?

किसी भी सुझाव के लिए बहुत बहुत धन्यवाद ... मैं थोड़ी देर के लिए इस पर अटक गया हूं ... और मुझे सच में यकीन नहीं है कि प्रक्रिया का कौन सा हिस्सा त्रुटियों को फेंक रहा है। किसी भी सुझाव या सुझावों का बहुत स्वागत किया जाएगा ...

+0

मुझे अभी पता चला है कि यदि आप एक ही समय में एल और आर कैमरों से छवि सेट एकत्र करते हैं तो सब कुछ बेहतर काम करता है, फिर ऑब्जेक्ट मॉडल पॉइंट्स (यानी शतरंज कोने कॉर्ड) और दो सेटों को हल करें छवि कोने कॉर्ड (यानी बाएं और दाएं कैमरा उप पिक्सेल कॉर्ड)। – timemirror

+0

यह भी बेहतर काम करता है जब शतरंज कैमरे के काफी करीब है ... मेरी समस्या यह है कि यह मुझे काम करने के लिए ज्यादा जगह नहीं देता क्योंकि मेरे कैमरे बहुत दूर हैं। इसलिए मैंने अभी एक बड़ा शतरंज (200%) बनाया है और इसे और दूर रख दिया है .. मुझे कोने मिलान में सटीकता और इसे चारों ओर स्थानांतरित करने के लिए और भी अधिक जगह प्रदान करना। मदद करने के लिए लगता है ... अभी भी इस पर काम कर रहा है! – timemirror

+0

@ टिमिमिरर: क्या आपने मैटलैब कैलिब्रेशन टूलबॉक्स (www.vision.caltech.edu/bouguetj/calib_doc/) या डैनियल स्टोयोनोव के कैमरा अंशांकन उपकरण (http://ubimon.doc.ic.ac.uk/dvs/m581) की जांच की है .html) दोनों अंशांकन के लिए उत्कृष्ट उपकरण हैं। जिस तरह से emguCV लाइब्रेरी के साथ आपके निष्कर्ष थे, क्या आपको इसके साथ संतोषजनक परिणाम मिले? –

उत्तर

0

मैंने कुछ वर्षों में ईएमजीई का उपयोग नहीं किया है, लेकिन मैं इसे कैमरे और एक किनेक्ट को कैलिब्रेट करने के लिए उपयोग कर रहा था।

मैंने पाया कि आयताकार कोनों के क्रम में कुछ भ्रम हो सकता है यदि आयत पूरी तरह से क्षैतिज है - मैं वास्तव में क्यों नहीं नीचे आ गया, और यह मेरे लिए काम करना प्रतीत होता था। बोर्ड को सेट करने का प्रयास करें ताकि आयत 45 डिग्री के रोल पर हो (यानी सामने से आप एक हीरे के आकार को देखेंगे, अगर यह कोई समझ में आता है)।

मेरी बहुत ही बुनियादी समझ यह है कि यह दोनों कैमरों के लिए यह सुनिश्चित करना आसान बनाता है कि वे पहले कोने के रूप में गिनती शुरू करने के लिए एक ही कोने को चुनते हैं।

मैं गारंटी नहीं दे सकता कि इससे आपकी समस्या ठीक हो जाएगी - यह हो सकता है कि मेरे कोड में कुछ गहराई से गलत हो और यही कारण है कि शतरंज सपाट होने पर नियमित परिणाम उत्पन्न करने में विफल रहा। फिर फिर, यह आपको परीक्षण करने में लंबा समय नहीं लगेगा और बस काम कर सकता है।

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