1

我正在处理以下代码

#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;
}

我知道如果我设法获得两个连续帧的平均输出,我可以将实时网络摄像头输出的视频减少 70% 。我得到了两个连续的帧使用

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

现在,我怎样才能得到这个平均值并显示它?

4

1 回答 1

3

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

Mat img_mean=0.5*image+0.5*image2;
imshow("Average",img_mean);
于 2013-06-17T07:02:12.710 回答