问题标签 [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 投票
1 回答
372 浏览

python-3.x - 将 numpy 数组 d.type uint8 输入到自适应阈值函数中时出错

我正在尝试将一个 numpy 数组输入到Process_img (adaptivethreshold)函数中。numpy 数组的数据类型为uint8and 3 dimensions,应该被函数接受。

我收到以下错误消息。我已经尝试将其转换为grayscale但似乎不起作用,并且我已经尝试过numpy.ndarray.flatten (1 dimension),它可以正常工作但无法正确显示。

我最终得到一个长长的灰色条。我不确定我还应该做什么。任何帮助表示赞赏。

错误:OpenCV(3.4.4) C:\projects\opencv-python\opencv\modules\imgproc\src\thresh.cpp:1524: 错误: (-215:Assertion failed) src.type() == CV_8UC1 in function 'cv::adaptiveThreshold'

0 投票
0 回答
890 浏览

python - 第二次调用mss截图功能时得到黑白图像

我使用 mss 模块 ( https://pypi.org/project/mss/ ) 来制作屏幕截图。第二次调用函数时,我得到黑白图像。最奇怪的是,它偶尔会成功。

我尝试sleep(1)在通话之间留出一些时间,但没有帮助。

第一张图总是好的。第二张图片在大多数情况下都会崩溃,有时(尤其是当窗口很大时)它出奇地好用。我不知道可能是什么原因。我会很感激任何建议。

编辑:我将 mss 屏幕截图功能交换为 pyautogui,它仍然是一样的。看起来问题出在其他地方。这是新功能:

EDIT2:第二张图片的坐标很好。即使这样的代码在第二次调用函数时也会出错(在截屏前也通过打印坐标进行检查):

0 投票
1 回答
2021 浏览

python - 使用 python mss 在屏幕记录顶部绘制边界框

我有屏幕记录的代码,并且每一帧我都有一组我想在每一帧上显示的边界框。我可以使用matplotlib或其他方式执行此操作,但我mss的工作速度为 30fps,我需要能够快速显示边界框。

我在文档中注意到这个例子,但我尝试运行它并且无法让它显示任何东西。而且我什至不确定这是否适用于我的示例。

现在假设我有一组边界框要显示在每一帧上,例如,

我可以以某种方式更改像素以显示它吗?我想我也可以通过它来做到这一点opencv,因为这是最终显示屏幕的内容。

编辑:参考关于边界框的评论,它们是x1, y1, width, height,并且在调整大小的(224,224)图像中

0 投票
1 回答
2752 浏览

python - 最快的截图库python/提高mss包的性能

python 3.6,Windows 10:我试图每 1-5 毫秒截取一个(部分)屏幕截图,然后在其上运行一些自定义 OCR 以提取一些数据。我使用 mss 包截取屏幕截图的代码需要 16 到 47 毫秒,具体取决于我尝试捕获的像素数。

我有 3 行不同的问题:

1.) 有没有更快的 mss 替代品?

2.) 有没有办法将 mss 速度提高 2-3 倍?

3.) 如何通过如下所示的代码分析/cProfile 输出了解如何实现性能改进?我阅读输出的方式是在“抓取”功能上花费了大量时间,但不清楚抓取功能内部实际上需要这么长时间。

0 投票
1 回答
601 浏览

python - 使用 MSS 截取许多屏幕截图时,内存快速填满并导致 python 崩溃

这是我的代码:

当它运行时,它不会抛出任何错误,但是在任务管理器中查看,我的内存很快就会填满(大约 200 次迭代之后),最终导致我的桌面崩溃,然后是 python。我调查了垃圾收集,但没有运气。

0 投票
1 回答
682 浏览

python - 如何让我的 python 程序更快地截屏?

我一直在研究这个脚本,它点击屏幕上某种颜色的像素的任何位置,但我遇到了一个问题,当我循环它时它会截取屏幕截图,但在 30 秒循环中只有大约 12 个应该是程序以 600 的速度非常快速地单击像素。我迷路了

0 投票
1 回答
627 浏览

python - 如何从 image.pixel 中找到像素位置?

所以,我有这个可以工作的脚本,它打印出所有具有 (102,102,102) 的 rgb 值的像素,但我不知道我现在如何能够获得该像素位置并单击它.. 有什么建议吗?

编辑:像素位置是指像素x,y坐标

0 投票
0 回答
120 浏览

python-3.x - python mss ScreenShotError

所以基本上我只是在搞乱mss(python2.73.6),我有以下代码:

应该只是截取屏幕截图并显示它,但它只是死于以下信息:

我究竟做错了什么?

我读过一些关于资源没有被释放的东西,但在此之前我在没有 with 语句的情况下搞乱了代码,也没有调用 free 或 close 等等。它崩溃了,我重新启动了,但无济于事。

0 投票
2 回答
375 浏览

python - 加速截图功能 - Python

我需要我的截图功能尽可能快,现在每次调用该功能大约需要 0.2 秒。

这是功能:

您是否注意到我可以做任何更改以使该功能更快?

编辑:我忘记提及的一些细节:

  1. 我的屏幕尺寸是1920*1080

  2. 此功能是我目前正在进行的直播项目的一部分。Carlo 在下面建议的解决方案在这种情况下是不合适的,因为远程计算机不会与我们的计算机屏幕同步。

0 投票
2 回答
1648 浏览

python - 在 Ubuntu 上使用 python MSS 库时 XGetImage 失败错误

我在 Ubuntu 18.10 上使用 mss 时遇到错误(如果重要的话)。这是我的代码(取自他们在文档中的示例,加上一些额外的错误输出):

这是我使用 python 3.7 运行代码时看到的输出。

如果它有帮助,如果我没有捕获异常,这里是输出(stacktrace)

我在虚拟环境中运行它,其中我的 Pipfile.lock 报告 mss version 4.0.2

我曾尝试以 root 身份运行它,但给出了相同的输出。我无法在 Google 中找到类似的问题。我还尝试在 tmux 之外运行它,但也没有结果。