实时修改视频流

时间:2015-08-14 14:33:46

标签: c++

我需要实时访问连接到Windows PC的摄像机的像素数据。访问后,我将对其进行修改并将其作为视频流的一部分输出。换句话说,我需要找到实时修改视频流的最简单方法。我知道OpenCV和Matlab功能,但我想知道是否有人找到了一种更简单的方法。

1 个答案:

答案 0 :(得分:3)

如果您想使用C ++,OpenCV,只要它适用于您的相机,这是最简单的方法之一。以下代码来自OpenCV文档VideoCapture。唯一的技巧是实例化VideoCapture实例。它会变得多么简单?

#include "opencv2/opencv.hpp"

using namespace cv;
int main(int, char**)
{
    VideoCapture cap(0); // open the default camera
    if(!cap.isOpened())  // check if we succeeded
        return -1;

    Mat edges;
    namedWindow("edges",1);
    for(;;)
    {
        Mat frame;
        cap >> frame; // get a new frame from camera
        cvtColor(frame, edges, COLOR_BGR2GRAY);
        GaussianBlur(edges, edges, Size(7,7), 1.5, 1.5);
        Canny(edges, edges, 0, 30, 3);
        imshow("edges", edges);
        if(waitKey(30) >= 0) break;
    }
    // the camera will be deinitialized automatically in VideoCapture destructor
    return 0;
}

Capture Video from Camera甚至有一个python版本看起来与上面的C ++版本非常相似。