我正在尝试使用 Python 捕获我的屏幕,因为我将在 OpenCV 上使用它,但我找不到让它在 Gnome 上工作的方法,因为 Gnome 使用 Wayland 并且我发现的所有库都只适用于 X11 .
现在我不考虑改变我的界面。我正在寻找解决这个问题的方法。有人知道解决方案吗?
更具体地说,我将使用这些图像来训练 AI,因此我需要不断地使用它们。
编辑:我找到了这个,但是如何在 Python 中将帧传递给 OpenCV 而不是保存视频文件?
如今,进行截屏的正确方法是使用Screencast 门户,它是 XDG 桌面门户的一部分,并且已被 GNOME、KDE、wlroots(以及更多)支持。作为一个额外的优势,这也适用于像 Flatpaks 这样的容器化格式。
您可以找到一个示例,说明如何使用此代码段在 Pyhon 中进行截屏,该代码段由 Mutter 维护者之一创建。如果您查找parse_launch()
,您将看到一个 GStreamer 管道,您可以对其进行修改以包含可以为您执行处理的 GStreamer OpenCV 元素。
注意:在您的编辑中,您链接到该门户的前身,它是 GNOME 特定的内部 API,所以我不会依赖它 ;-)