我需要将矩阵中的所有元素相加。我使用了函数
sum(sum(A));
在matlab中。其中A
是一个大小为300 * 360的矩阵。
我想在OpenCV中实现相同的功能。我用过这样的东西。
double s=cv::sum(cv::sum(A));
但是有错误显示无法将标量转换为double。如何解决这个问题?
答案 0 :(得分:40)
与Matlab不同,在opencv中,cv::sum(A)
在所有维度上求和,并返回一个等于Matlab sum(sum(A))
的数字(标量)。
所以,你需要的是
double s = cv::sum( A )[0];
答案 1 :(得分:11)
此外,您可以使用@Shai;
double sum = cv::sum(A).val(0);