Ответ 1
В отличие от Matlab, в opencv, cv::sum(A)
суммирует по всем измерениям и возвращает одно число (скалярное), равное Matlab sum(sum(A))
.
Итак, вам нужно
double s = cv::sum( A )[0];
Мне нужно суммировать все элементы в матрице. Я использовал функцию
sum(sum(A));
в matlab. Где A
- матрица размером 300 * 360.
Я хочу реализовать ту же функцию в OpenCV. Я использовал что-то вроде этого.
double s=cv::sum(cv::sum(A));
Но есть ошибка, которая не может преобразовать скаляр в double. Как решить эту проблему?
В отличие от Matlab, в opencv, cv::sum(A)
суммирует по всем измерениям и возвращает одно число (скалярное), равное Matlab sum(sum(A))
.
Итак, вам нужно
double s = cv::sum( A )[0];
Кроме @Shai, вы можете использовать;
double sum = cv::sum(A).val(0);