大家好,我是大飞,今天给大家带来Python实现有趣的脚本。

<font size="5"">ta href="#diary-tail" target="_self<b>领取福利</b></a></font>

一、工具准备

系统:win10

Python版本:python3.8.6

pycharm版本:pycharm 2021.1.2(Professional Edition)

二、获取百度智能云token

百度智能云 登录后找到人工智能界面下的文字识别->管理界面创建应用文字识别。

创建应用完成后记录下,后台界面提供的AppID、API key、Secret Key的信息

接下来根据 官方提供的文档获取使用Token

# encoding:utf-8
import requests
# client_id 为官网获取的AK, client_secret 为官网获取的SK
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=wgEHks0l6MCpalbs3lPuFX1U&client_secret=Z4Rn4ghBx9k06fUYPmSEIRbCFvWFxLyQ'
response = requests.get(host)
if response:print(response.json()['access_token'])

三、百度接口调用

使用获取后token调用百度接口对图片进行识别提取文字

# encoding:utf-8import requests
import base64
'''
通用文字识别(高精度版)
'''
request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic"
# 二进制方式打开图片文件
f = open('图片.png', 'rb')
img = base64.b64encode(f.read())
params = {"image":img}
# 获取后的Token的调用
access_token = '24.0d99efe8a0454ffd8d620b632c58cccc.2592000.1639986425.282335-24065278'
request_url = request_url + "?access_token=" + access_token
headers = {'content-type': 'application/x-www-form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
if response:print (response.json())

获取后的token为json格式的数据

此处步骤我们可以看出识别后的文件是以json的格式返回的所以要想达到取出文字的效果就需要对json格式的返回值进行解析。

四、搭建窗口化的程序以便于使用

实现窗口可视化的第三方类库是Tkinter。可在终端输入 pip install tkinter 自行下载安装。

导入tkinter模块包 构建我们的可视化窗口,要是实现的功能有截图识别文字,中英文分离,文字识别后自动发送给剪切板。

from tkinter import *
# 创建窗口
window = Tk()
# 窗口名称
window.title('qcc-tnw')
# 设置窗口大小
window.geometry('400x600')
# 窗口标题设置
l=Label(window,text='百度API调用', bg='green', fg='white', font=('Arial', 12), width=30, height=2)
l.pack()
# 设置文本接收框
E1 = Text(window,width='100',height='100')
# 设置操作Button,单击运行文字识别  "window窗口,text表示按钮文本,font表示按钮本文字体,width表示按钮宽度,height表示按钮高度,command表示运行的函数"
img_txt = Button(window, text='文字识别', font=('Arial', 10), width=15, height=1)
# 设置操作Button,单击分割英文
cut_en = Button(window, text='英文分割', font=('Arial', 10), width=15, height=1)
# 设置操作Button,单击分割中文
cut_cn = Button(window, text='中文分割', font=('Arial', 10), width=15, height=1)
# 参数anchor='nw'表示在窗口的北偏西方向即左上角
img_txt.pack(anchor='nw')
cut_en.pack(anchor='nw')
cut_cn.pack(anchor='nw')
# 使得构建的窗口始终显示在桌面最上层
window.wm_attributes('-topmost',1)
window.mainloop()

五、实现截图的自动保存

通过上述对百度接口的解析发现接口是不支持提取剪切板中的文件的。

所以通过PIL库截取的图片从剪切板保存到本地,在调用百度的接口实现图片中文字的识别。

PIL的安装 终端输入 pip install PIL

from PIL import ImageGrab#取出剪切板的文件保存至本地image = ImageGrab.grabclipboard()
s= 'xxx.png'
image.save(s)
#百度接口调用
request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic"
f = open(s, 'rb')
img = base64.b64encode(f.read())
params = {"image": img}
access_token = '24.ee0e97cbc00530d449464a563e628b8d.2592000.1640228774.282335-24065278'
request_url = request_url + "?access_token=" + access_token
headers = {'content-type': 'application/x-www-form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
for i in response.json()['words_result']:print(i['words'])

完成后可以使用qq或微信等的截图功能截图并运行程序。

六、将识别到的文字输出显示在窗口文本框中并将文字发送到剪切板

if response:for i in response.json()['words_result']:# 接受识别后的文本E1.insert("insert", i['words'] + '\n')E1.pack(side=LEFT)# 将识别后的文字写入剪切板pyperclip.copy(E1.get("1.0","end"))

七、提取识别后文字中的中(英)文

此处的判断相对简单将 if len(''.join(re.findall(r'[A-Za-z]', i['words'])))<1: 中的‘<'改为‘>'即为中文

E1.delete('1.0','end')
for i in response.json()['words_result']:
#判断是否存在英文if len(''.join(re.findall(r'[A-Za-z]', i['words'])))<1:#将识别正则过滤后的文本在文本框中显示E1.insert("insert", i['words'] + '\n')E1.pack(side=LEFT)#复制到剪切板pyperclip.copy(E1.get("1.0", "end"))

最后将方法封装为函数形式传递至我们定义好的窗口按钮中

# 设置操作Button,单击运行文字识别  "window窗口,text表示按钮文本,font表示按钮本文字体,width表示按钮宽度,height表示按钮高度,command表示运行的函数"
img_txt = Button(window, text='文字识别', font=('Arial', 10), width=15, height=1,command=img_all)
# 设置操作Button,单击分割英文
cut_en = Button(window, text='英文分割', font=('Arial', 10), width=15, height=1,command=img_en)
# 设置操作Button,单击分割中文
cut_cn = Button(window, text='中文分割', font=('Arial', 10), width=15, height=1,command=img_cn)
# 参数anchor='nw'表示在窗口的北偏西方向即左上角
img_txt.pack(anchor='nw')
cut_en.pack(anchor='nw')
cut_cn.pack(anchor='nw')
window.wm_attributes('-topmost',1)

以上就是Python实战之实现截图识别文字的详细内容,对你有帮助的话记得给大飞关注评论留言。

<span id="diary-tail""></span>

我用Python实现截图识别文字,工作效率提升,直接打卡下班相关推荐

  1. 6个 Python 办公黑科技,工作效率提升100倍!(附代码)

    下班晚,加班久感觉已经成为现代打工人的通病,每天将大部分时间浪费在一些机械,重复的工作上,如何提升你自己的工作效率才是关键. 今天给大家分享6个 Python 办公小技巧,让你的工作效率倍增,欢迎大家 ...

  2. 通Python实现操作 excel表格 工作效率提升百倍

    一.概述 操作 excel 是程序员经常要遇到的场景.因为产品.运营的数据都是以这种格式存储.所以,当程序员拿到这些数据肯定要解析,甚至需要把结果输出成 excel 文件. 下面就介绍如果用 Pyth ...

  3. 6个Python办公黑科技,工作效率提升100倍!HR小姐姐都馋哭了(附代码)

    一.解析PDF(简历内推) 应用场景:简历内推(解析内容:包括不限于姓名.邮箱.电话号码.学历等信息) 输入:要解析的文件路径 输出:需要解析的内容(点我主页,详见历史文章) 环境准备:python ...

  4. ❤️ 6个Python办公黑科技,工作效率提升100倍!HR小姐姐都馋哭了(附代码)❤️

  5. 【良心推荐两款软件】eDiary记笔记软件+截图识别文字软件

    更多优秀费开源软件推荐,可前往github: https://github.com/MemorialCheng/shareware 目录 一.eDiary记笔记软件 1.1 下载方式 1.2 软件展示 ...

  6. 图片截图识别文字怎么操作?这两个方法不要错过

    现如今,图片截图识别文字是一项非常有用的技术.很多小伙伴平时在工作或者生活中都会保存很多图片格式的资料文件把.如果遇到需要讲内容图区到文档中编辑的话,识别技术就可以帮助我们快速识别图片中的文字,从而节 ...

  7. T25 截图识别文字工具

    截图识别文字工具:天若OCR文字识别工具 需要注册账号登录,可以大幅度提高工作效率. 软件: https://tianruo.lanzous.com/iR2zrhs0s1e 教程: https://c ...

  8. screenocr怎么卸载_如何截图识别文字?这五款软件教你轻松识别文字!

    原标题:如何截图识别文字?这五款软件教你轻松识别文字! 在我们日常学习和日常工作中,如果遇到截图识别文字该怎么办呢? 有时候我们会需要在电脑桌面或者浏览页上临时截图识别图中的文字,尤其是在写文章记录素 ...

  9. 如何截图识别文字并复制?介绍两种识别软件

    我们网上查找资料时,看到一些有用的信息往往会复制保存下来.碰到无法复制的地方可以截图,那如何截图识别文字并复制?今天给大家介绍两款高效识别软件,一键解决你的问题! 一.使用识别软件截图识别文字并复制 ...

最新文章

  1. (转)失败和拒绝,也是一种肯定
  2. CentOS各版本挂载光盘做yum源安装
  3. [BZOJ 1098] [POI2007] 办公楼biu 【链表优化BFS】
  4. windows多线程同步--临界区
  5. 在游戏运营行业,Serverless 如何解决数据采集分析痛点?
  6. 热门解读:大促的活动设计及效果评估的优化
  7. Ubuntu一键安装LAMP环境
  8. 房贷月供4300,10万够买支付宝定期,一年利息能否抵一个月月供?
  9. HDU2086 A1 = ?【水题】
  10. contiki list 链表
  11. java调用chrome内核_selenium中如何测试360等基于chrome内核的浏览器
  12. Mac安装Python并使用GUI界面设计
  13. php生成盖章图片,印章图案生成器
  14. ET1100和ET1200的区别
  15. 全网最好的子网划分方法与例题解析
  16. 企业引入人脸识别考勤 想要代打卡?没门!
  17. 仿微信翻译----本地短信翻译。
  18. 微信头像失效_微信头像地址失效踩坑记附带解决方案
  19. 数据分析案例分析:日化公司社群营销场景,产品SKU,用户转化率,用户流转地图
  20. 机房布线的至高境界,美到窒息

热门文章

  1. UE4动画系统:什么是动画通知(Anim Notify)
  2. ECCV2020 | SOD100K:超低参数量的高效显著性目标检测算法,广义OctConv和动态权重衰减...
  3. BugKu msic方向 赛博朋克
  4. 车辆到达服从什么分布_交叉口车辆到达统计分布的实证研究
  5. Unity与IOS⭐Xcode打包,上架TestFlight的完整教程
  6. 线性渐变LinearGradient使用总结
  7. autoHotkey---获取输入光标的位置,判断是否在文本输入状态
  8. cf服务器不显示名字,cf怎么改名字 起名不能随便
  9. usdt (节点自动归集)
  10. 【问题解决】kindle for pc闪退