2012-10-07 21 views
5

का उपयोग करके कैलिब्रेशन मैं ओपनसीवी और पायथन का उपयोग करके 3 डी और स्टीरियो कैमरा कैलिब्रेशन करने के तरीके सीखने की कोशिश कर रहा हूं। 8x6 शतरंज (7x5 इंटीरियर कोनों) के 3 कैमरा दृश्यों का उपयोग करके, मैं cv.calibrateCamera() ठीक काम करने में सक्षम था लेकिन जब मैं cv2 का उपयोग करता हूं तो पूरी तरह से अटक जाता हूं। चेसबोर्ड कोनों को ढूंढने के लिए एक कदम है। जबकि cv.findChessboardCorners() बिंदुओं की सूची के रूप में कोनों को लौटाता है, सीवी 2 numpy arrays का उपयोग करता है, और अंक (35,1,2) numpy सरणी के रूप में देता है। Cv2.calibrateCamera() के पैरामीटर object_points, image_points, और image_size हैं। मैं (3,35,3) numpy सरणी में ऑब्जेक्ट पॉइंट्स और (3,35,2) numpy सरणी में छवि बिंदुओं की आपूर्ति कर रहा हूं। छवि का आकार (1632, 1224) है। क्या कोई मुझे बता सकता है कि समस्या क्या है? त्रुटि मैं बहुत उपयोगी नहीं है:cv2.camera पाइथन

Traceback (most recent call last): 
    File "H:/pyCV/locv_book/ch11/calCamera2a.py", line 46, in <module> 
    cv2.calibrateCamera(opts,ipts,size) 
error: ..\..\..\src\opencv\modules\calib3d\src\calibration.cpp:3173: error: (-215) ni >= 0 

उत्तर

5

अंक float32 जा करने के लिए, (एन, 2) और (एन, 3) की जरूरत है मैट्रिक्स के रूप में। आप इस तरह फ्लोट 32 में परिवर्तित कर सकते हैं:

points32 = np.array(points,dtype=np.float32) 
+0

धन्यवाद! इस त्रुटि ने मुझे कोई अंत नहीं किया! – shinjin

+1

ओपनसीवी 2.4.10 का उपयोग कर 2015 में इस प्रश्न को मिला। मुझे एक समान "सीवी 2.error: ... calibration.cpp: 3169: त्रुटि: (-215) ni> = 0 फ़ंक्शन cv :: collectCalibrationData" में मिलता है। वर्कअराउंड क्रमशः ऑब्जेक्ट और छवि बिंदुओं के लिए दोनों सरणी (1, एन, 3) और (1, एन, 2) को दोबारा बदलना था। – sastanin