2013-08-27 5 views
6

पर कॉल करने में असमर्थ मैं एक ही आकार और दूसरे प्रकार के एक Mat बनाने की कोशिश कर रहा हूं। नई Mat के सभी तत्वों को शून्य होना चाहिए, इसलिए मैं Mat::zeros(size, type) समारोह, के रूप में परिभाषित करने की कोशिश की:ओपनसीवी के मैट :: शून्य के साथ आकार और टाइप पैरामीटर

static MatExpr zeros(Size size, int type); 

यह मेरा कोड है। मान लें मैं पहले से ही एक Mat g (imread के माध्यम से बनाया):

Mat h = Mat::zeros(g.size, g.type()); 

यह मैं एक संकलक त्रुटि दे देंगे, शिकायत है कि:

करने के लिए कॉल के लिए कोई मिलती-जुलती समारोह 'शून्य'

क्या क्या मैं गलत कर रहा हूँ?

+0

'g.size' के प्रकार क्या है? – juanchopanza

उत्तर

11

आपने cv::Mat के क्विर्क में से एक पर ठोकर खाई है। size फ़ील्ड cv::Size वापस नहीं करता है, बल्कि Mat::MSize संरचना। यह MSize को पर कॉल करके cv::Size में परिवर्तित किया जा सकता है।

आप इस तरह कॉल करने की आवश्यकता:

Mat h = Mat::zeros(g.size(), g.type()); 
+0

धन्यवाद। मुझे कोई अन्य quirks पता होना चाहिए? ;-) – cfischer

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