अचार/अनपिकल करता हूं, मैं विंडोज़ पर पायथन 2.7.3 पर opencv 2.4.3 के साथ एक दिलचस्प त्रुटि में चल रहा हूं। DrawContours का उपयोग करने का प्रयास करते समय मुझे "TypeError: contours डेटा प्रकार = 5 समर्थित नहीं है" त्रुटि प्राप्त होती है जब तक कि मैं पहले समोच्चों को अचार/अनपिक नहीं करता।drawContours के साथ डेटा प्रकार त्रुटि जब तक कि मैं पहले
यह काम नहीं करता (मैं हो "लेखन त्रुटि: आकृति डेटा प्रकार = 5 समर्थित नहीं है"):
noBg = cv2.blur(src, (5,5))
noBg = cv2.inRange(noBg, np.array([80, 0, 200], np.uint8), np.array([255, 50, 255], np.uint8))
noBg = np.invert(noBg)
contours, hierarchy = cv2.findContours(noBg, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(src, contours, -1, (0,255,0), 3)
लेकिन यह काम करता है:
noBg = cv2.blur(src, (5,5))
noBg = cv2.inRange(noBg, np.array([80, 0, 200], np.uint8), np.array([255, 50, 255], np.uint8))
noBg = np.invert(noBg)
contours, hierarchy = cv2.findContours(noBg, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
tmp = cPickle.dumps(contours)
contours = cPickle.loads(tmp)
cv2.drawContours(src, contours, -1, (0,255,0), 3)
किसी और देखा गया है यह व्यवहार या क्या मुझे कुछ याद आ रही है? मैं अजगर/ओपनसीवी के लिए नया हूं ताकि मामला बहुत अच्छा हो।
संपादित करें: बस मेरे मैक पर इसका परीक्षण किया गया, और दोनों मामले ठीक काम करते हैं। शायद सिर्फ एक विंडोज़ समस्या है?
आप की जाँच की है, तो अचार प्रक्रिया वास्तव में अपने आकृति डेटा प्रकार बदल कर समाप्त होता है ? आपको यह चुनने के लिए कुछ और कोड लिखना चाहिए कि कैसे अचार/अनपिकल वास्तव में डेटा को संशोधित करता है। – AJMansfield
यदि मैं प्रिंट का उपयोग करता हूं, तो डेटा पिकलिंग से पहले और बाद में दिखता है। क्या मेरे लिए दो की तुलना करने का कोई बेहतर तरीका है? मैं मानता हूं कि कुछ अलग होना चाहिए। –
@ user1816939 मुझे वास्तव में कोई जानकारी नहीं है कि आप बेहतर तुलना कैसे करेंगे। शायद सभी वस्तुओं के सदस्यों के मूल्य को प्रिंट करके और सिर्फ प्रिंट करके? यद्यपि इसमें उससे अधिक कोड लिखना शामिल होगा ... शायद कुछ प्रकार का डीबगर ऐसा कर सकता है? – AJMansfield