C++ 如何计算和使用cvMat平均值
在openCV备忘单(C++)中,我找到了矩阵运算。当我使用它时:C++ 如何计算和使用cvMat平均值,c++,opencv,matrix,mean,C++,Opencv,Matrix,Mean,在openCV备忘单(C++)中,我找到了矩阵运算。当我使用它时: float myMatMean = mean( MyMat ); 我得到一个错误: 不存在从“cv::Scalar”到“float”的适当转换函数 如何使用这些数据?谢谢 问题在于,尽管myMat是一个2D图像。返回类型仍然是一个标量,大小4 解决办法是 cv::Scalar tempVal = cv::mean( myMat ); float myMAtMean = tempVal.val[0]; mean()
float myMatMean = mean( MyMat );
我得到一个错误:
不存在从“cv::Scalar”到“float”的适当转换函数
如何使用这些数据?谢谢
问题在于,尽管myMat是一个2D图像。返回类型仍然是一个标量,大小4
解决办法是
cv::Scalar tempVal = cv::mean( myMat );
float myMAtMean = tempVal.val[0];
mean()我认为如果你不想为标量而烦恼的话,用double代替float是可行的。但标量给出了所有通道的平均值。什么是平均值?哪个标题?哪个名字?使用此类非标准函数时,请输入使用的名称空间。问题不是“图像是2D”,而是图像可以有多个颜色平面(openCV中的颜色图像通常为B、G、R),并且每个颜色平面取平均值,每个颜色平面取一个值,因此为标量。您的解决方案将为您提供图像蓝色部分的平均值(除非是灰度图像)。