2012-10-02 8 views
11

Nel foglio cheat di openCV (C++), ho trovato l'opzione matrix mean(). Quando lo uso:come calcolare e utilizzare il valore medio di cvMat

float myMatMean = mean(MyMat); 

ottengo l'errore:

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

Cosa posso fare per utilizzare questi dati?

+14

'()' sembra media di tornare una variabile di tipo 'cv :: Scalar' in modo da provare' cv :: Scalar myMatMean = media (MyMat); ' – hmjd

+0

penso funziona usando il doppio invece del float, se non vuoi disturbarti con Scalar. Ma Scalar ti dà la media su tutti i canali – remi

risposta

25

Grazie.

Il problema era che sebbene myMat fosse un'immagine 2D. Il tipo di reso era ancora un Scalar di dimensioni .

La soluzione è stata

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

Ora accetta la tua risposta, e siamo tutti felici :) – TheBlastOne

+0

... e vota il commento di hmjd come ricompensa per lo sforzo. –

+0

diavolo, lo farò per te ... –

Problemi correlati