2012-10-02 20 views
11

En la hoja de trucos de openCV (C++), he encontrado la matriz opration mean(). Cuando lo uso:cómo calcular y usar el valor medio de cvMat

float myMatMean = mean(MyMat); 

me sale el error:

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

¿Qué puedo hacer yo con el fin de utilizar estos datos?

+14

'media()' parece estar volviendo una variable de tipo 'cv :: Scalar' a fin de tratar' cv :: escalar myMatMean = media (MyMat); 'Creo – hmjd

+0

funciona con doble en lugar de flotador, si no quieres molestarte con Scalar. Pero Scalar te da una media en todos los canales – remi

Respuesta

25

Gracias.

El problema era que aunque myMat era una imagen en 2D. El tipo de devolución todavía era Scalar del tamaño .

La solución se

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

Ahora acepta tu propia respuesta, y todos estamos contentos :) – TheBlastOne

+0

... y vota el comentario de hmjd como una recompensa por el esfuerzo. –

+0

diablos, lo haré por ti ... –

Cuestiones relacionadas