如何使用Opencv找到15个连续色帧的平均值(即像素的平均值)?
在结束时,我想要一个图像,其中“平均15个连续图像”。
提前致谢。
答案 0 :(得分:0)
OpenCV Mat
支持各种matrix expressions,包括添加和缩放。
那就是说,你可以这样做:
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);
答案 1 :(得分:0)
我会将所有图像转换为浮点数,因为整数格式在255之后溢出:
src.convertTo(dst, CV_32F);
然后,您需要做的就是将图像添加到一起:
Mat canvas = //create an image here;
add(canvas, frame, canvas);
15帧之后除以15:
canvas.mul(1/15.0);