我需要实时访问连接到Windows PC的摄像机的像素数据。访问后,我将对其进行修改并将其作为视频流的一部分输出。换句话说,我需要找到实时修改视频流的最简单方法。我知道OpenCV和Matlab功能,但我想知道是否有人找到了一种更简单的方法。
答案 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 ++版本非常相似。