python - 如何在 Python 代码中捕获 Wayland(Gnome)上的屏幕?

标签 python opencv gnome screen-capture wayland

我正在尝试使用 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/

相关文章:

python - 如何在 Keras API 中将数组列表作为输入

c++ - OpenCV contourArea() 不工作

c++ - OpenCv C++,在函数内将传入的 Mat 分配给 Mat 失败

c - 在困惑中,我们可以从 table_layout 中删除所有参与者吗?

environment-variables - 如何将 env 变量传递给 GNOME

python - 浏览字典列表并仅选择存在键的行

python - 改进 Python SKLearn 交叉验证输出

python - 以编程方式启动 python 虚拟机并与之交互

python - 在Python中添加两个不同大小的图像或填充白色像素以使其更大

ubuntu - GTK 应用程序显示 "green"太暗