我在一个c++编程项目中使用OpenCV。我在OpenCV的某些限制方面遇到了一些困难,我想分析一个视频文件并检测特定对象。这完美地实现了,但我现在想要分析我的桌面屏幕的一个部分。(实时)有人知道如何完成这个任务吗?我想过制作一个网络摄像头模拟器来捕捉我的桌面屏幕,但我认为那太复杂了,应该有更简单的方法。
cv::VideoCapture cap;
cap.open("http://localhost:8090/live.flv"); // open the default camera
cap.set(CV_CAP_PROP_FOURCC, CV_FOURCC('F', 'L', 'V', '1'));
并且
cv::resize(frame, frame, cv::Size(200, 200));
cv::VideoWriter outStream("http://localhost:8090/feed2.ffm",
CV_FOURCC('F', 'L', 'V', '1'), 10, cv::Size(200, 200), true);
为了最小化延迟,200x200的分辨率是必要的,因此如果您可以直接获取屏幕缓冲区以避免不必要的屏幕广播/编码,那么从性能角度来看听起来更好...