python中怎么截图_用python实现截屏识别其中的文字

原标题:用python实现截屏识别其中的文字

大家好,欢迎来到 Crossin的编程教室 !

你一定用过那种“OCR神器”,可以把图片中的文字提取出来,极大的提高工作效率。

下次,当你想要复制“百度文库”中的内容时,不妨试试这个程序。

效果预览

dfd59abeab57eb393af345280f81425d.png

6d0b62b2d4f642302c08f5494f200fcc.png

源码解析

1)等待用户截图

此处需要借助贴图神器( Snipaste)

其中“f1”是截图的快捷键 ,“ctrl+c”是把截图保存到剪贴板的快捷键。

如果使用qq截图的话,需要把快捷键改为对应的“ctrl+alt+c”和“enter”

顺便安利一波Snipaste,

必备效率神器

importkeyboard

# 利用截图软件(Snipaste)截图到剪贴板

# 输入键盘的触发事件

keyboard.wait(hotkey= "f1")

keyboard.wait(hotkey= "ctrl+c")

time.sleep( 0.1)

上面这段代码执行之后,现在已经有一张图片等待在剪贴板里了。

说明:这里的 keyboard.wait 是为了让程序等待用户进行截屏操作。如果在你的系统上无法识别组合键,你也可以自定义一个按键(比如 keyboard.wait(hotkey="q") )作为通知程序完成截屏的确认。

2)保存截图

利用PIL模块的ImageGrab,可以把剪贴板里的那张图片,保存到当前的目录下,并命名为“screen.png”

fromPIL importImageGrab

# 把图片从剪切板保存到当前路径

image = ImageGrab.grabclipboard

image.save( "screen.png")

3)识别截图中的文本

法一

pytesseract模块

优点:免费,易用

缺点:识别效果很一般,准确率不高

使用方法介绍:

1) 安装 pytesseract库

pip install pytesseract

2) 安装 tesseract-ocr.exe 配置环境变量

3) 修改pytesseract.py文件,将tesseract_cmd指向Tesseract-OCR的tesseract.exe的绝对路径。

安装配置完成后,在代码中执行:

importpytesseract

fromPIL importImage

# 法一:利用pytesseract模块

# 参数一:图片

# 参数二:简体中文

text = pytesseract.image_to_string(Image.open( "screen.png"), lang= 'chi_sim')

print(text)

来看看效果:

2e6bec1e33c9ef68aa2b470af716842e.png

low的不行……(对于简单的标准字体还能凑合)

要想精度高,还得想别的办法。

法二

百度API接口

AI开放平台文档中心

https://ai.baidu.com/ai-doc

189bbadaa03556c42d9178f4fb83e4f0.png

查看python语言的SDK文档

02165d2f96cb4437312082b91b5f99db.png

点击右上角(控制台),登录自己的百度账号,创建“文字识别”的应用

3457f3936f2d8d2435aaafb3d56ef2bc.png

这里我们使用百度的AI库来简化调用。需安装:

pipinstall baidu_aip

importpytesseract

fromaip importAipOcr

fromPIL importImageGrab

# 法二:利用百度API

APP_ID = '你的 App ID'

API_KEY = '你的 Api Key'

SECRET_KEY = '你的 Secret Key'

client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

# 读取图片

withopen( "screen.png", 'rb') asf:

image = f.read

# 调用百度API通用文字识别(高精度版),提取图片中的内容

text = client.basicAccurate(image)

result = text[ "words_result"]

fori inresult:

print(i[ "words"])

结果如文章首图:

2957a6d6c664a906340394d6da016dc6.png

我是总结

代码步骤:

1)等待用户截图

2)保存截图到当前目录

3)识别截图中的文本

其中识别截图文本,有两种方法:

1)利用 pytesseract 模块

2)利用百度API接口

参考代码地址:

https://github.com/wwtm/gitpython_examples/blob/master/实时截图识别OCR/gp_ocr_picture.py

作者:GitPython

来源:GitPython

一行代码扫出“敬业福” 返回搜狐,查看更多

责任编辑:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值