我与火花的约定 2023-11-23 15:50 采纳率: 0%
浏览 11
已结题

python怎么高效实时截图?

我想达到每10ms以内截一张图,做yolo推理,我在网上找了好多方案,我现在使用的是win32,但这个截图时间为30-40ms之间。还有人说读取显存的,我一开始眼前一亮,但是研究了好久,一直摸不到门槛

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-23 21:13
    关注

    【以下回答由 GPT 生成】

    我可以给你一些建议来提高截图的效率。下面是一些可能的解决方案:

    1. 使用Python的PIL库进行截图:PIL库提供了ImageGrab模块来进行屏幕截图。可以通过调用ImageGrab.grab()方法来实现截图。以下是一个示例代码:

      ```python from PIL import ImageGrab

      进行截图

      image = ImageGrab.grab()

      显示截图

      image.show() ```

    尝试使用PIL库来进行截图,看是否能够满足你的需求。但需要注意,PIL库的截图速度可能不会很快。

    1. 使用opencv库进行截图:opencv库是一个非常流行的图像处理库,也可以用来进行截图。以下是一个示例代码:

      ```python import cv2

      创建一个用于实时显示的窗口

      cv2.namedWindow("Screen Capture")

      while True: # 进行截图 screen = cv2.cvtColor(np.array(ImageGrab.grab()), cv2.COLOR_RGB2BGR)

      # 显示截图
      cv2.imshow("Screen Capture", screen)
      
      # 按下q键退出循环
      if cv2.waitKey(1) == ord('q'):
          break
      

      释放窗口

      cv2.destroyAllWindows() ```

    这段代码会在一个实时显示的窗口中连续进行截图,并将截图实时显示出来。如果你只需要进行截图而不需要实时显示,可以适当修改代码。

    1. 调整屏幕分辨率和截图区域:如果你只需要对屏幕的一部分进行截图,可以尝试调整屏幕的分辨率和截图的区域。这样可以减少截图的大小,从而提高截图的速度。

    以上是一些可能的解决方案,希望对你有所帮助。但是请注意,由于系统和硬件的限制,无论使用哪种方法,实时截图的速度可能仍然无法在10毫秒以内完成。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月9日
  • 创建了问题 11月23日

悬赏问题

  • ¥15 Workbench中材料库无法更新,如何解决?
  • ¥20 如何推断此服务器配置
  • ¥15 关于github的项目怎么在pycharm上面运行
  • ¥15 内存地址视频流转RTMP
  • ¥100 有偿,谁有移远的EC200S固件和最新的Qflsh工具。
  • ¥15 找一个QT页面+目标识别(行人检测)的开源项目
  • ¥15 有没有整苹果智能分拣线上图像数据
  • ¥20 有没有人会这个东西的
  • ¥15 cfx考虑调整“enforce system memory limit”参数的设置
  • ¥30 航迹分离,航迹增强,误差分析