Сумма элементов в матрице в OpenCV?

Мне нужно суммировать все элементы в матрице. Я использовал функцию

  sum(sum(A)); 

в matlab. Где A - матрица размером 300 * 360. Я хочу реализовать ту же функцию в OpenCV. Я использовал что-то вроде этого.

  double s=cv::sum(cv::sum(A));

Но есть ошибка, которая не может преобразовать скаляр в double. Как решить эту проблему?

Ответы

Ответ 1

В отличие от Matlab, в opencv, cv::sum(A) суммирует по всем измерениям и возвращает одно число (скалярное), равное Matlab sum(sum(A)).
Итак, вам нужно

double s = cv::sum( A )[0];

Ответ 2

Кроме @Shai, вы можете использовать;

double sum = cv::sum(A).val(0);