问题标签 [python-mss]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
82 浏览

python - 无论如何要截取最大PPI的屏幕截图吗?

我正在尝试在我的 Mac 上截屏,因为我需要将截屏传递给 pytesseract,我想知道是否有任何方法可以以最大 PPI 抓取屏幕区域。我注意到它始终是 72 DPI,例如,有没有办法以 100 DPI 取它?

我有一台 MacBook Pro 15 英寸 2017,所以 PPI 差不多 220。

提前致谢

0 投票
1 回答
1034 浏览

python - Python 屏幕共享

嗨,我正在尝试在 python 3 中构建一个用于屏幕共享的应用程序,我查看了来自互联网的其他代码(其中一些来自 StackOverFlow),所有这些代码都只是快速打开我的屏幕截图而不将它们捕获到一个屏幕中,所以它无法合作

我无法使用每隔几秒钟弹出 100 个屏幕截图标签的屏幕共享(我认为这不是它应该如何工作的)

我想将它们捕获到一个屏幕中,这样我就可以使用它,而且它不会让我的屏幕因为一百个我无法处理的打开的屏幕截图标签而变得如此混乱

我很想得到一些帮助或技术建议

这是我从堆栈溢出找到的代码:

客户端.py

服务器.py

ps也许它打开了这么多标签,因为我在我的电脑上使用它——它应该在两台电脑之间工作。我不知道,希望得到一些帮助

原始代码页面的链接: python中的屏幕共享

0 投票
1 回答
995 浏览

python-mss - 如何在屏幕截图中捕获鼠标指针

我使用 python-mss 捕获屏幕截图并使用这些屏幕截图与 opencv 生成视频记录。因为我想捕捉视频中的鼠标移动。但似乎无法在快照中捕获鼠标指针。如何使用 python-mss 捕获鼠标指针?

如果有人可以提供帮助,请提前致谢。

0 投票
1 回答
1042 浏览

python - 如何在cv2中增加屏幕录像机的fps

我已经编写了一个代码来使用 python 记录屏幕录像机,但是当我看到输出时,我发现它的 fps 非常低。有没有比我更好的代码来增加屏幕录像机的 fps。如果是,请回复。这是我的代码:-

0 投票
1 回答
356 浏览

python-3.x - TclError:图像“pyimage3”不存在(仅在第一次运行时有效)

我正在尝试创建一个可以从 python 代码触发的屏幕截图区域工具。

它在第一次通话时有效,但在第二次通话时出现以下错误: TclError: image "pyimage2" doesn't exist

只有在我重新启动内核后才能工作,但只有一次,然后出现同样的错误..

我包括了下面的所有代码。有 python-mss 作为依赖项(和 tkinter 在 linux 上)

我尝试使用 Toplevel() 函数,但没有成功。

0 投票
1 回答
288 浏览

python - 更快的屏幕捕获

  1. 是否可以以灰色捕获屏幕?它会加速屏幕捕获与颜色捕获吗?

如果它加快了捕获速度,那将比应用过滤器更好。


  1. 是否可以以比监视器 Hz 更高的 fps 记录?

例如:我有一个 90Hz 的显示器,现在它的最大值是 90fps。有可能使用 90Hz 的监视器以 140fps 的速度录制吗?


3、有没有比mss更快的库?

0 投票
1 回答
3855 浏览

python - 类型错误:预期的 Ptr在python中使用mss库的参数'mat'

我正在尝试使用 mss 库进行屏幕截图添加使用下面的代码显示它,但每次都会出现相同的错误。是否有解决此错误的方法

类型错误:参数“mat”的预期 Ptr<cv::UMat>

** 我在 Macos 而不是 windows 中使用它

0 投票
0 回答
71 浏览

python - 从全屏获取捕获

我正在尝试制作我的屏幕的“视频”,以便 opencv 可以对其进行分析,并且到目前为止它运行良好,但是当我进入全屏模式时,程序停止记录或分析,这停止工作。你能帮助我吗?

0 投票
1 回答
984 浏览

python - 如何以高 FPS 记录我的电脑屏幕?

我正在尝试将高 FPS 屏幕录像机添加到我的应用程序中。我在 Windows 上使用 Python 3.7。我尝试过的模块和方法是mss (python-mss)and d3dshot,但是对于长视频(超过 20 秒),我仍然只能达到 15-19 FPS。我录制的分辨率是 1920 x 1080。

优化屏幕录制的最佳方法是什么?我试过使用这个multiprocessing库,但它似乎还不够快。我不确定我是否以最佳方式使用它,有哪些方法可以使用它来提高处理性能?

使用 OBS Studio,无论视频多长,我都能获得 30 FPS。我的目标是用我自己的代码实现相同的结果。

这是我到目前为止所写的:

目标是捕捉游戏,同时执行自动化的键盘和鼠标操作。

0 投票
0 回答
188 浏览

python - 如何有效地压缩内存中的帧?

我正在用 Python 测试屏幕投射。客户端和服务器的代码都比较简单。

总之,我之前做的是:

  • 在服务器上:
    • 抓取屏幕与mss
    • 序列化pickle
    • 发送数据
    • 重复每一帧
  • 在客户端:
    • 接收数据并反序列化pickle
    • 通过 CV2 运行接收到的 numpy 数组以显示它

我在本地对其进行了测试,结果证明效果很好。然而,当我开始在我的网络中(台式机和笔记本电脑之间)进行测试时,问题迅速激增。质量很好,但非常滞后,FPS 非常低。

我意识到帧可能太大了,所以我决定把注意力转向压缩,我已经搜索和尝试了几个小时,但无济于事。经过一段时间的搜索,我遇到了一些使用 SO 的用户zlib,所以我决定做同样的事情,尽管通过zlib.compress(frame)在序列化和发送(在服务器上)之前压缩()以及反序列化和解压缩(zlib.decompress(frame))(在客户端)我不能'不要将数据转回 numpy 数组,因此 CV2 会崩溃,说出类似TypeError: Expected Ptr<cv::UMat> for argument 'src'.

除了知道如何有效地压缩帧之外,我还真正想知道是什么降低了我的代码速度,因为我不完全确定问题出在帧大小上。我将不胜感激有关该主题的任何帮助以及任何提示,提示或批评,因为我在该主题上毫无经验。

服务器代码:

客户端代码: