为了计算给定帧的平均rgb颜色,我对每个循环使用以下内容以获得平均颜色。
for (int i = 0; i < pFrame.cols(); i++) {
for (int j = 0; j < pFrame.rows(); j++) {
int pixel_rgb_avg = ((int)(pFrame.get(i, j)[0] + pFrame.get(i, j)[1] + pFrame.get(i, j)[2]) / 3);
r_curr += pFrame.get(i, j)[0];
g_curr += pFrame.get(i, j)[1];
b_curr += pFrame.get(i, j)[2];
counter_curr += 1;
}
}
r_curr = r_curr/ counter_curr;
g_curr = g_curr/ counter_curr;
b_curr = b_curr/ counter_curr;
这可以正常工作,但是此任务必须实时完成。根据matsize的不同,可能需要很长时间才能完成此过程,这可能是由于get()方法引起的,该方法每次迭代均被调用3次。 (这是在后台线程中完成的)
有人知道一种更有效的方法吗?