मैं पायथन और सी मिश्रण OpenCV 2.1 करने के लिए बदलने के बाद एक OpenCV परियोजना है, सी कोड के लिए अपने कॉल, किसी भी अधिक काम नहीं कर रहे है, क्योंकि हो OpenCV कोई और अधिक बड़ा घूँट बाइंडिंग उपयोग कर रहा है ।बड़ा घूँट अजगर मूल कोड को बाइंडिंग OpenCV के साथ काम नहीं कर 2.1
अजगर से, मैं निम्नलिखित प्रोटोटाइप के साथ एक सी समारोह कॉल करने के लिए इस्तेमाल किया गया था:
int fast_support_transform(CvMat * I, CvMat * N,...);
अब, मैं निम्नलिखित त्रुटि मिलती है:
TypeError: in method 'fast_support_transform', argument 1 of type 'CvMat *'
सी कोड लाइब्रेरी में से है बनाया मेरे द्वारा जो पायथन इंटरफेस का उत्पादन करने के लिए एसडब्ल्यूआईजी का उपयोग करता है। मुझे यकीन नहीं है, लेकिन मुझे लगता है कि ओपनसीवी अब सीटीपीएस का उपयोग कर रहा है और यह कोड मेरे मूल कोड में सीवीमैट पॉइंटर भेजने में असमर्थ है।
क्या आप इस समस्या के लिए तेज़ समाधान के बारे में जानते हैं? किसी भी सुझाव का स्वागत है।
अद्यतन: आगंतुक, इस सवाल का ध्यान दें पुराना है। ओपनसीवी में पाइथन समर्थन अब बहुत परिपक्व है। CvMat
को डिफ़ॉल्ट रूप से एक Numpy सरणी के रूप में दर्शाया जा रहा है।
कोशिश 'cvArr's को' cvMat's परिवर्तित करने के लिए और फिर तर्कों के रूप cvArr * का उपयोग कर? सीवीएआरटी सीवीएआरआर से लिया गया है। तो, एक बार जब आप cvArr सूचक प्राप्त करते हैं, तो आप इसे वापस cvMat में परिवर्तित कर सकते हैं और इसका उपयोग कर सकते हैं। या दूसरा विकल्प ओपनसीवी के अंतिम कामकाजी संस्करण पर वापस जाना होगा। – askmish