计算 Mat OpenCV 子集的总和

Calculating sum of a subset of Mat OpenCV

本文关键字:子集 Mat OpenCV 计算      更新时间:2023-10-16

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

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

我知道sum(b_hist) 会给出整个垫子的总和。如何获取一些子集?有没有类似的方法?有人可以告诉它吗?

你可以先使用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;