尝试捕获显示输出,以便使用OpenCV进行实时分析;我需要与操作系统接口以进行输入的帮助

尝试捕获显示输出,以便使用OpenCV进行实时分析;我需要与操作系统接口以进行输入的帮助,opencv,ffmpeg,real-time,capture,vision,Opencv,Ffmpeg,Real Time,Capture,Vision,我想将OpenCV计算机视觉库中的操作实时应用于从我的计算机显示器捕获的视频。 这种特殊情况下的想法是在流行游戏的游戏过程中检测有趣的功能,并为用户提供增强的体验;但我可以想到其他几种情况,人们也希望实时访问这些数据。 无论如何,对于开发阶段来说,使用罐装视频可能是可以接受的,但对于最终的应用程序来说,性能和响应能力显然是至关重要的 到目前为止,我正在Ubuntu 10.10上尝试这样做,并且更愿意使用类似UNIX的系统,但是任何选项都是有意义的。 我的C语言技能非常有限,所以只要有可能通过Py

我想将OpenCV计算机视觉库中的操作实时应用于从我的计算机显示器捕获的视频。 这种特殊情况下的想法是在流行游戏的游戏过程中检测有趣的功能,并为用户提供增强的体验;但我可以想到其他几种情况,人们也希望实时访问这些数据。 无论如何,对于开发阶段来说,使用罐装视频可能是可以接受的,但对于最终的应用程序来说,性能和响应能力显然是至关重要的

到目前为止,我正在Ubuntu 10.10上尝试这样做,并且更愿意使用类似UNIX的系统,但是任何选项都是有意义的。 我的C语言技能非常有限,所以只要有可能通过Python与OpenCV对话,我就会尝试使用它。 请注意,我尝试的不是从相机设备捕获,而是从实时显示输出流捕获;我不知道如何接受输入。据我所知,CaptureFromCAM仅适用于相机设备,在我看来,最终结果中对实时性能的要求使得在文件中存储和通过CaptureFromFile读取成为一个糟糕的选择

到目前为止,我发现的最有希望的途径似乎是使用ffmpeg和x11grab选项从X11显示器上进行捕获; (例如命令) ffmpeg-fx11Grab-sameq-r25-swxga-i:0.0out.mpg 将显示屏0的1366x768捕捉到“out.mpg”)。 我想应该可以将ffmpeg的输出流视为OpenCV读取的文件(可能是通过使用CaptureFromFile函数),也可能是通过管道;但这一切都是在一个比我以前处理过的要高得多的层面上,我真的需要一些指导。
你认为这种方法可行吗?更重要的是,你能想出一个更好的吗?你会怎么做?

我认为主要的挑战是实时性要求。我认为您必须为OpenCv创建一些软件,其灵感来自ffmpeg中的视频捕获代码。但这肯定涉及C级编码


我的建议是,首先使用ffmpeg捕获的视频,尝试正确的视觉算法

我认为主要的挑战是实时性要求。我认为您必须为OpenCv创建一些软件,其灵感来自ffmpeg中的视频捕获代码。但这肯定涉及C级编码


我的建议是,首先使用ffmpeg捕获的视频,尝试正确的视觉算法

如果您希望获得实时性能,我会放弃x11grab或任何其他cmd行工具来拍摄屏幕截图


编写自己的屏幕抓取程序,以便直接将其发送到OpenCV。如果您想知道如何在X11下实现这一点,您可以查看一下。

如果您希望获得实时性能,我将放弃x11grab或任何其他cmd行工具来拍摄屏幕截图


编写自己的屏幕抓取程序,以便直接将其发送到OpenCV。如果您想知道如何在X11下实现这一点,可以看看。

谢谢您的快速回复。我认为你的建议对于保持我的热情来说是非常合理的,但是在我知道我能够根据需要获取数据之前,我不愿意在分析中投入任何精力。(另外,很高兴知道我们从什么样的数据结构开始)感谢您的快速回复。我认为你的建议对于保持我的热情来说是非常合理的,但是在我知道我能够根据需要获取数据之前,我不愿意在分析中投入任何精力。(另外,很高兴知道一个人从什么样的数据结构开始)这是有意义的。这是一个艰难的建议,我必须学会如何运用它,但我认为它是可行的。非常有帮助的参考资料。非常感谢。这是有道理的。这是一个艰难的建议,我必须学会如何运用它,但我认为它是可行的。非常有帮助的参考资料。非常感谢。