我需要为一个OpenCV项目快速截屏。我可以很容易地使用PIL,例如:def take_screenshot1(hwnd):

rect = win32gui.GetWindowRect(hwnd)

img = ImageGrab.grab(bbox=rect)

img_np = np.array(img)

return cv2.cvtColor(img_np, cv2.COLOR_RGB2BGR)

但它平均需要0.05秒,这对实时捕获来说不够快。在

我可以使用发布的答案here,但这只会将位图保存到文件中。这比使用PIL要快10倍多,但我不确定OpenCV中是否有任何方法可以将其转换为bgr/hsv图像。在

^{pr2}$

在编辑:大小的值为500x500,因此在两个示例中都保存了相同的区域。在

即使我保存了图像,然后用OpenCV重新打开它,它仍然比PIL快,但是肯定有更简单的方法吗?在

编辑:好,使用注释并对winapi I进行一些研究,现在可以直接访问位图数据,如下所示:def take_screenshot1(hwnd):

wDC = win32gui.GetWindowDC(hwnd)

dcObj=win32ui.CreateDCFromHandle(wDC)

cDC=dcObj.CreateCompatibleDC()

dataBitMap = win32ui.CreateBitmap()

dataBitMap.CreateCompatibleBitmap(dcObj, 500, 500)

cDC.SelectObject(dataBitMap)

cDC.BitBlt((0, 0), (500, 500), dcObj, (0, 0), win32con.SRCCOPY)

im = dataBitMap.GetBitmapBits(True) # Tried False also

img = np.array(im)

cv2.cvtColor(img, cv2.COLOR_RGB2BGR)

print(img)

dcObj.DeleteDC()

cDC.DeleteDC()

win32gui.ReleaseDC(hwnd, wDC)

win32gui.DeleteObject(dataBitMap.GetHandle())

但是我不确定如何将返回的位图转换为OpenCV能够理解的格式,因为OpenCV中没有将位图转换为rgb/bgr的方法

python windows api截图_Winapi快速截图并打开相关推荐

  1. python windows api截图_Python调用windows API实现屏幕截图

    Python调用windows API实现屏幕截图 好处是 灵活 速度快 缺点是: 写法繁琐 不跨平台 import time import win32gui, win32ui, win32con, ...

  2. 自学Python+windows API自动化操作桌面功能

    目    录 一.windows API 1.官方文档 2.pywin32 3.win32api 4.win32gui 5.win32clipboard 二.windows API的另一种键鼠输入 1 ...

  3. python windows api hook_windows hook + pyhook3 + python win32api hook + C 键盘hook

    下面是自己学的时候查到的东西的一些整理, /// 下面开始是整理 windows hook原理: windows hook api: C语言windows 键盘Hook: python 使用win32 ...

  4. 【实用】如何在windows下快速截图?

    如何在windows下快速截图? 快速截图是很多人的需求.截图的工具和方案也很多,但是,这里给出一个通用的,被大众认为最高效的一个解决方案. 我们都知道键盘上有一个"prt sc" ...

  5. Python windows高效截屏

    win32系列模块是python windows api实现,效率很高,但是环境搭建比较麻烦,各种pip install报错,本次成功安装依赖idea的Alt + Enter自动下载安装 import ...

  6. python怎么保存到桌面_python3应用windows api对后台程序窗口及桌面截图并保存的方法...

    python的版本及依赖的库的安装 #版本python 3.7.1 pip install pywin32==224 pip install numpy==1.15.3 pip install ope ...

  7. python3应用windows api对后台程序窗口及桌面截图并保存

    目录 python的版本及依赖的库的安装 对后台窗口截图 对桌面截图 python的版本及依赖的库的安装 #版本python 3.7.1 pip install pywin32==224 pip in ...

  8. 调用Windows api 窗口截图

    分别调用windows api函数及CVI自带函数,完成对GRAPH界面的截图 界面设计如下图,右侧为graph控件的位置信息,调用API函数是完成对于选择窗口的固定位置进行截图,调用CVI自带函数则 ...

  9. windows xp进入访客_Windows XP时代的快速截图工具在Windows 10后续版本里将被逐渐弃用...

    自Windows XP开始微软就在系统里提供截图工具 (Snipping Tool) ,相信现在还有用户仍然使用这个截图工具. 不过在Windows 10里微软已经开发新的截图应用即截图和草图,该应用 ...

  10. win10自带的 快速截图功能

      昨天下午看到用windows的小伙伴在讨论如何快速截图,我也就参与讨论了一下.发现几种截图方案中,下面这种截图方案最快捷方便: Ctrl + R 输入 cmd 点击 回车键 在dos命令行输入 S ...

最新文章

  1. 又到 6 月底,想来和你聊一聊毕业季,愿你前程似锦!
  2. Python字符串的编码与解码(encode与decode)
  3. python3.5中import sqlite3报错:ImportError: No module named _sqlite3
  4. Spark入门(Python)
  5. Spring框架IOC的实现
  6. BZOJ3938 UOJ88:[集训队互测2015]Robot——题解
  7. 文件上传的几个 - 示例
  8. 如何解决 MacBook Pro Touch ID不起作用?
  9. 计算机专业 哪里的好,正规计算机专业哪里好
  10. js实现html页面转为pdf下载
  11. Android 退出登录实现
  12. 华沙理工大学语言c1,留学波兰华沙理工大学:一个让人轻易就爱上的地方
  13. javaSSH集成的一些感想
  14. 新的GSMA报告强调“智联万物”在全球的作用
  15. 卡布奇诺搭建教程_移动Web应用程序框架匹配,第2部分,探索卡布奇诺咖啡以进行移动Web应用程序开发
  16. 创建反向词典,为你打开神经网络的大门
  17. 浙大计算机科学与技术专业分数线,浙江大学数学系分数线
  18. Pycharm中c、m、F、f、v、p分别代表的含义
  19. 非华为电脑管家连接平板--无法连接问题解决方案之一
  20. 大数据系统基础 | 绪论

热门文章

  1. 基于C语言的基础学习Java
  2. 体系建模系统软件:体系结构建模工具攻略
  3. 组态软件专用短信终端
  4. iOS开发初学者需要经常去的论坛或网站
  5. java前后端接口文档_细说API - 文档和前后端协作
  6. 微信小程序车牌号输入组件(虚拟键盘)
  7. 计算机组成原理收获与心得,学习计算机组成原理心得体会
  8. 发送ajax的get请求,AJAX之发送GET请求
  9. LabVIEW 杀死进程 直接调用cmd代码来实现
  10. PsPice教程学习笔记(Cadence Allegro)