//开始统计bgr的平均值
COLORNODE GetavColor(Mat p_mat, vector<Point2f> p_vec)
{
COLORNODE tep = { 0,0,0 };
int nchannels = p_mat.channels();
int nrows = p_mat.rows;//矩阵的行数
int ncols = p_mat.cols;//矩阵的总列数=列数*nchannels
if (p_mat.isContinuous())//isContinuous()函数用于判断矩阵是否连续,若连续,相当于只需要遍历一个一维数组
{
cout << "only one row!" << endl;
}
for (int i = p_vec[0].y; i < p_vec[3].y; i++)
{
uchar* ptr = p_mat.ptr<uchar>(i);//获取行地址
for (int j = p_vec[0].x; j < p_vec[1].x; j++)
{
int a = ptr[j * 3 + 0];
int b = ptr[j * 3 + 1];
int c = ptr[j * 3 + 2];
tep.b += a;
tep.g += b;
tep.r += c;
}
}
tep.b = tep.b / (20 * 20);
tep.g = tep.g / (20 * 20);
tep.r = tep.r / (20 * 20);
return tep;
}
求图片bgr的平均值
最新推荐文章于 2024-07-15 16:33:31 发布