计算Mat OpenCV子集的总和

时间:2015-06-14 22:11:11

标签: c++ opencv sum mat

我们可以在不使用任何循环的情况下直接计算OpenCV(C ++)中Mat元素子集的总和吗?

示例:Mat b_hist,有1列,256行。如何计算0到105行或106到150行的行总和?

我知道sum(b_hist)会给出整个Mat的总和。我怎样才能得到一些子集?有没有类似的方法?有人可以告诉一下吗?

1 个答案:

答案 0 :(得分:3)

您可以先使用cv::Range获取所需的子垫,然后对它们求和:

cv::Mat sub_mat_1 = mat(cv::Range(0, 106),   cv::Range::all());
cv::Mat sub_mat_2 = mat(cv::Range(106, 151), cv::Range::all());

std::cout << cv::sum(sub_mat_1).val[0] << std::endl;
std::cout << cv::sum(sub_mat_2).val[0] << std::endl;