如何使用Opencv找到15个连续颜色帧的平均值(即像素的平均值)?
在最后,我想要一个图像,它的"平均15个连续的图像"。
提前谢谢。
OpenCV Mat
支持各种矩阵表达式,包括加法和缩放。
也就是说,你可以做:
vector<Mat> mats(15); // images that you want to average
...
Mat average = zeros(mats[0].size(), CV_32FC3);
// use float type here to avoid overflow
// , and assume all images are 3 channels
for (int i=0; i<mats.size(); i++)
average = average + mats[i];
average = average*(1.0f/15);
我会将所有图像转换为浮点,因为整数格式在255:之后溢出
src.convertTo(dst, CV_32F);
然后,你所需要做的就是将图像添加在一起:
Mat canvas = //create an image here;
add(canvas, frame, canvas);
15帧后除以15:
canvas.mul(1/15.0);