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