2012-10-02 14 views
11

ओपनसीवी धोखा शीट (सी ++) में, मुझे मैट्रिक्स ऑप्शन mean() मिला है। जब मैं इसका इस्तेमाल:सीवीएमएटी औसत मूल्य की गणना और उपयोग कैसे करें

float myMatMean = mean(MyMat); 

मैं त्रुटि मिलती है:

no suitable conversion function from "cv::Scalar" to "float" exists

क्या मैं इस डेटा का उपयोग करने में कर सकते हैं?

+14

'मतलब()' प्रकार का एक चर लौट करने के लिए 'सीवी :: Scalar' तो' कोशिश सीवी :: अदिश myMatMean = मतलब (MyMat) प्रकट होता है; ' – hmjd

+0

मुझे लगता है कि यदि आप स्केलर से परेशान नहीं होना चाहते हैं तो यह फ्लोट के बजाय डबल का उपयोग कर काम करता है। लेकिन स्केलर आपको सभी चैनलों में मतलब देता है – remi

उत्तर

25

धन्यवाद।

समस्या यह थी कि हालांकि myMat एक 2 डी छवि थी। रिटर्न प्रकार अभी भी Scalar आकार था।

समाधान था

cv:Scalar tempVal = mean(myMat); 
float myMAtMean = tempVal.val[0]; 
+6

अब बस अपना जवाब स्वीकार करें, और हम सभी खुश हैं :) – TheBlastOne

+0

... और प्रयास के लिए भुगतान-वापसी के रूप में एचएमजेडी की टिप्पणी को वोट दें। –

+0

नरक, मैं यह आपके लिए करूँगा ... –

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