c++ - 如何获得连续两帧的平均输出?

标签 c++ image opencv image-processing camera

我正在编写以下代码

#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

using namespace std;
using namespace cv;

int main()
{
    VideoCapture *camera = new VideoCapture();

    camera->open(0);



    if(!camera->isOpened())
    {
        cout << "No Camera" << endl;
        return -1;
    }

    Mat image,blur,image2;

    namedWindow("Video");




    while(true)
    {

        *camera>>image;
        *camera>>image2;

        //Show default image
        imshow("Video",image);


        if(waitKey(30)>=0)
        {
            break;
        }

    }


    return 0;
}

我知道,如果我设法做到 get the average output of two consecutive frames,我可以将实时网络摄像头输出的视频减少 70% .我使用

得到了两个连续的帧
            *camera>>image;
            *camera>>image2;

现在,我怎样才能得到它的平均值并显示出来呢?

最佳答案

对于cv::Mat,你可以这样做:

Mat img_mean=0.5*image+0.5*image2;
imshow("Average",img_mean);

关于c++ - 如何获得连续两帧的平均输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17141743/

相关文章:

c++ - C++ 中的嵌套模板

c# - 如何使用 C++ 杀死 C++ 进程并让它在杀死之前做一些事情

python - 使用 Python openCV 从实时提要(网络摄像头)中提取光流作为数据(数字)

java - 如何根据感兴趣区域周围的设计去除图像的背景?

c++ - OpenCV C++/Obj-C : Advanced square detection

c++ - 表达式未评估为常量两级 constexpr 函数(编译器错误?)

c++ - 如何从非 Qt C++ 库类向 Qt GUI 提供反馈?

javascript - 拉伸(stretch) <img> 以适合整个屏幕,而不保持宽高比且没有滚动条

java - 如何在android studio中不使用 Intent 的情况下从相机拍照

css - 应用自定义样式后,增强型图像插件无法正常工作