如何使用Opencv找到15个连续彩色图像(现场摄像头视频)的平均值(平均像素数)?

时间:2014-04-28 13:11:20

标签: image opencv image-processing

如何使用Opencv找到15个连续色帧的平均值(即像素的平均值)?

在结束时,我想要一个图像,其中“平均15个连续图像”。

提前致谢。

2 个答案:

答案 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);