10几行代码,用python打造实时截图识别OCR
你一定用过那种“OCR神器”,可以把图片中的文字提取出来,极大的提高工作效率。
!
今天,我们就来做一款实时截图识别的小工具。顾名思义,运行程序时,可以实时的把你截出来的图片中的文字识别出来。
下次,当你想要复制“百度文库”中的内容时,不妨试试这个程序。
效果预览
源码解析
1)等待用户截图
此处需要借助贴图神器(Snipaste)
其中“f1”是截图的快捷键,“ctrl+c”是把截图保存到剪贴板的快捷键。
如果使用qq截图的话,需要把快捷键改为对应的“ctrl+alt+c”和“enter”
顺便安利一波Snipaste,
必备效率神器
import keyboard
# 利用截图软件(Snipaste)截图到剪贴板
# 输入键盘的触发事件
keyboard.wait(hotkey="f1")
keyboard.wait(hotkey="ctrl+c")
time.sleep(0.1)
上面这段代码执行之后,现在已经有一张图片等待在剪贴板里了。
2)保存截图
利用PIL模块的ImageGrab,可以把剪贴板里的那张图片,保存到当前的目录下,并命名为“screen.png”
from PIL import ImageGrab
# 把图片从剪切板保存到当前路径
image = ImageGrab.grabclipboard()
image.save("screen.png")
3)识别截图中的文本
法一
pytesseract模块
优点:免费,易用
缺点:识别效果很一般,准确率不高
使用方法介绍:
1)pip install pytesseract
2)安装 tesseract-ocr.exe 配置环境变量
3)修改pytesseract.py文件,将tesseract_cmd指向Tesseract-OCR的tesseract.exe的绝对路径。
参考文章
见评论第一条
import pytesseract
from PIL import Image
# 法一:利用pytesseract模块
# 参数一:图片
# 参数二:简体中文
text = pytesseract.image_to_string(Image.open("screen.png"), lang='chi_sim')
print(text)
来看看效果:
low的不行
果然,要想精度高,还得用百度API
法二
百度API接口
AI开放平台文档中心
https://ai.baidu.com/ai-doc
查看python语言的SDK文档
点击右上角(控制台),登录自己的百度账号,创建“文字识别”的应用
import pytesseract
from aip import AipOcr
from PIL import ImageGrab
# 法二:利用百度API
APP_ID = '你的 App ID'
API_KEY = '你的 Api Key'
SECRET_KEY = '你的 Secret Key'
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
# 读取图片
with open("screen.png", 'rb') as f:
image = f.read()
# 调用百度API通用文字识别(高精度版),提取图片中的内容
text = client.basicAccurate(image)
result = text["words_result"]
for i in result:
print(i["words"])
结果
如文章首图:
我是总结
1)等待用户截图
2)保存截图到当前目录
3)识别截图中的文本
其中识别截图文本,有两种方法:
1)利用 pytesseract 模块
2)利用百度API接口
你一定用过那种“OCR神器”,可以把图片中的文字提取出来,极大的提高工作效率。
今天,我们就来做一款实时截图识别的小工具。顾名思义,运行程序时,可以实时的把你截出来的图片中的文字识别出来。
下次,当你想要复制“百度文库”中的内容时,不妨试试这个程序。
效果预览
源码解析
1)等待用户截图
此处需要借助贴图神器(Snipaste)其中“f1”是截图的快捷键,“ctrl+c”是把截图保存到剪贴板的快捷键。
如果使用qq截图的话,需要把快捷键改为对应的“ctrl+alt+c”和“enter”
顺便安利一波Snipaste,
必备效率神器
import keyboard # 利用截图软件(Snipaste)截图到剪贴板# 输入键盘的触发事件keyboard.wait(hotkey="f1") keyboard.wait(hotkey="ctrl+c")time.sleep(0.1)
上面这段代码执行之后,现在已经有一张图片等待在剪贴板里了。
2)保存截图
利用PIL模块的ImageGrab,可以把剪贴板里的那张图片,保存到当前的目录下,并命名为“screen.png”
from PIL import ImageGrab
# 把图片从剪切板保存到当前路径image = ImageGrab.grabclipboard() image.save("screen.png")
3)识别截图中的文本
法一pytesseract模块
优点:免费,易用缺点:识别效果很一般,准确率不高
使用方法介绍:
1)pip install pytesseract
2)安装 tesseract-ocr.exe 配置环境变量
3)修改pytesseract.py文件,将tesseract_cmd指向Tesseract-OCR的tesseract.exe的绝对路径。
参考文章
见评论第一条
import pytesseractfrom PIL import Image
# 法一:利用pytesseract模块# 参数一:图片 # 参数二:简体中文text = pytesseract.image_to_string(Image.open("screen.png"), lang='chi_sim')print(text)
来看看效果:
low的不行果然,要想精度高,还得用百度API
法二百度API接口
AI开放平台文档中心https://ai.baidu.com/ai-doc
查看python语言的SDK文档 点击右上角(控制台),登录自己的百度账号,创建“文字识别”的应用
import pytesseractfrom aip import AipOcrfrom PIL import ImageGrab
# 法二:利用百度APIAPP_ID = '你的 App ID'API_KEY = '你的 Api Key'SECRET_KEY = '你的 Secret Key'
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
# 读取图片with open("screen.png", 'rb') as f: image = f.read()
# 调用百度API通用文字识别(高精度版),提取图片中的内容 text = client.basicAccurate(image) result = text["words_result"] for i in result: print(i["words"])
结果如文章首图:
我是总结
1)等待用户截图2)保存截图到当前目录3)识别截图中的文本
其中识别截图文本,有两种方法:
1)利用 pytesseract 模块
2)利用百度API接口
10几行代码,用python打造实时截图识别OCR的更多相关文章
- 【python】10分钟教你用python打造贪吃蛇超详细教程
10分钟教你用python打造贪吃蛇超详细教程 在家闲着没妹子约, 刚好最近又学了一下python,听说pygame挺好玩的.今天就在家研究一下, 弄了个贪吃蛇出来.希望大家喜欢. 先看程序效果: 0 ...
- 10分钟教你用Python打造天气机器人+关键字自动回复+定时发送
01 前言 Hello,各位小伙伴.自上次我们介绍了Python实现天气预报的功能以后,那个小程序还有诸多不完善的地方,今天,我们再次来完善一下我们的小程序.比如我们想给机器人发“天气”等关键字,它就 ...
- 10分钟教你用Python打造微信天气预报机器人
01 前言 最近武汉的天气越来越恶劣了.动不动就下雨,所以,拥有一款好的天气预报工具,对于我们大学生来说,还真是挺重要的了.好了,自己动手,丰衣足食,我们来用Python打造一个天气预报的微信机器人吧 ...
- 50行代码实现python计算器主要功能
实现功能:计算带有括号和四则运算的式子 3*( 4+ 50 )-(( 100 + 40 )*5/2- 3*2* 2/4+9)*((( 3 + 4)-4)-4) 基本思路:使用正则表达式提取出每一层 ...
- Python实战:截图识别文字,过万使用量版本!(附源码!!)
前人栽树后人乘凉,以不造轮子为由 使用百度的图片识字功能,实现了一个上万次使用量的脚本. 系统:win10 Python版本:python3.8.6 pycharm版本:pycharm 2021.1. ...
- 10分钟教你用python 30行代码搞定简单手写识别!
欲直接下载代码文件,关注我们的公众号哦!查看历史消息即可! 手写笔记还是电子笔记好呢? 毕业季刚结束,眼瞅着2018级小萌新马上就要来了,老腊肉小编为了咱学弟学妹们的学习,绞尽脑汁准备编一套大学秘籍, ...
- 10行代码使用python统计词频
# -*- coding: utf-8 -*- #!/usr/bin/env python import re f = open("C:\\Users\\陶敏\\Documents\\Pys ...
- 千行代码入门Python
这个是从网上找到的一份快速入门python的极简教程,大概一千行左右,个人觉得不错,特此收藏以备后用. # _*_ coding: utf-8 _*_ """类型和运算- ...
- “猜你喜欢”的背后揭秘--10分钟教你用Python打造推荐系统
欲直接下载代码文件,关注我们的公众号哦!查看历史消息即可! 话说,最近的瓜实在有点多,从我科校友李雨桐怒锤某男.陈羽凡吸毒被捕.蒋劲夫家暴的三连瓜,到不知知网翟博士,再到邓紫棋解约蜂鸟.王思聪花千芳隔 ...
随机推荐
- css限制文字显示字数长度,超出部分自动用省略号显示,防止溢出到第二行
为了保证页面的整洁美观,在很多的时候,我们常需要隐藏超出长度的文字.这在列表条目,题目,名称等地方常用到. 效果如下: 未限制显示长度,如果超出了会溢出到第二行里.严重影响用户体验和显示效果. 我们在 ...
- BugFix系列---开篇介绍
这个系列的文章,主要目的在于积累总结实际开发中遇到的错误,记录下来自己的解决思路,用来提升自己. 不出意外,应该会持续不断的记录更新,在整个开发openstack的过程中,抓住机会吸取开源界大牛的 ...
- MySQL性能调优语句
mysql>show global status; 可以列出MySQL服务器运行各种状态值 一.慢查询 mysql> show variables like '%slow%'; mysql ...
- Binary Tree和Binary Search Tree
Binary TreeDefinition: at most two children node. Binary Tree Example: 10 ==root / \ 13 ...
- 连接数据库 - (mysql-thinkphp) (2)
1.现在conf里面写好选择的数据库 选择好了以后 2.在index里面输入 查询mysql数据库里面的表tables_priv的所有数据 public function index() { $res ...
- 【剑指Offer】面试题34. 二叉树中和为某一值的路径
题目 输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径.从树的根节点开始往下一直到叶节点所经过的节点形成一条路径. 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / ...
- P1067 试密码
P1067 试密码 转跳点:
- L2-012. 关于堆的判断(最小堆)
将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: “x is the root”:x是根结点: “x and y are siblings”:x和y ...
- office2019激活办法
@echo off (cd /d "%~dp0")&&(NET FILE||(powershell start-process -FilePath '%0' -ve ...
- mysql日常小总结(其实就今天)
联表查询: SELECT t1.user_Name FROM t_user AS t1 , t_comment AS t2 WHERE t2.user_id=t1.id 结果如图: 加上GRO ...