web-dev-qa-db-ja.com

OpenCVの行列の要素の合計?

マトリックス内のすべての要素を合計する必要があります。関数を使用しました

  sum(sum(A)); 

matlabで。ここで、Aはサイズ300 * 360の行列です。 OpenCVで同じ機能を実装したい。私はこのようなものを使用しました。

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

ただし、スカラーをdoubleに変換できないことを示すエラーがあります。この問題を修正するには?

19
kadu

Matlabとは異なり、opencvでは、cv::sum(A)はすべての次元に沿って合計し、Matlabのsum(sum(A))と等しい単一の数値(スカラー)を返します。
したがって、必要なのは

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

さらに、 @ Shai を使用できます。

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