如何使用Opencv找到15个连续彩色图像(实时网络摄像头视频)的平均值(像素的平均值)



如何使用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);

相关内容

  • 没有找到相关文章

最新更新