2015-06-14 96 views
1

我們可以直接計算而不使用任何循環OpenCV(C++)中Mat元素子集的總和嗎?計算Mat OpenCV子集的總和

示例:Mat b_hist,有1列256行。我如何計算0行到105行或106行到150行的行數?

我知道sum(b_hist)會給出整個Mat的總和。我怎樣才能得到一些子集?有沒有類似的方法?有人可以告訴它嗎?

+0

你可以嘗試yourMat(CV ::矩形(...))來引用子陣列 – Micka

回答

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;