当前位置:   article > 正文

十行代码实现文字识别,你敢信?

传统字符识别代码

  大家好,我是一行

本篇分享的是用百度的接口实现图片的文字识别

1.环境和配置要求

整体是用Python实现,所需要使用的第三方库包括aipPILkeyboardpyinstaller,如未安装,可在CMD中使用pip install Baidu-AIP/pillow/keyboard/pyinstaller指令安装。

百度接口

打开https://cloud.baidu.com/,如未注册请先注册,然后登录点击管理控制台,点击左侧产品服务人工智能文字识别,点击创建应用,输入应用名称如Baidu_OCR,选择用途如学习办公,最后进行简单应用描述,即可点击立即创建。会出现应用列表,包括AppID、API Key、Secret Key等信息,这些稍后会用到。

2.具体实现步骤

整个程序的大致思路是,在用截图软件获得截图之后,交给百度接口识别,并返回结果,当然,也可以是本地图片识别,我用的是QQ自带截图软件,快捷键CTRL+ALT+A用来打开截图,在选中所截区域后,按Enter键即可保存到粘贴板中,也可用其他截图软件。

获取截图

keyboard类库是用来监听键盘动作的,所以在有快捷键按下之后,便会有相应动作。并用PIL中的ImageGrab来获取到剪切板中的图片并生成本地图片文件。

  1. #1.截图
  2. keyboard.wait('ctrl+alt+a')
  3. print('开始截图')
  4.  
  5. keyboard.wait('enter')
  6. print('保存截图')
  7. time.sleep(0.1)
  8.  
  9. #2.保存图片
  10. image = ImageGrab.grabclipboard()
  11. image.save('img.png')

调用Baidu aip识别并打印文字

先用注册时生成的应用的AppID、API Key、Secret Key初始化应用,再读取保存到的图片并打印识别的文字。

  1. with open('img.png''rb') as fp:
  2.     image = fp.read()
  3.     text_list = client.basicAccurate(image)['words_result']
  4.     for text in text_list:
  5.         print(text['words'])

运行结果如图所示:我们还可增加一个无限循环使得一直能截图。

调用打包程序生成专属识别文字小程序

用pyinstaller库实现小程序的打包,生成.exe文件,这样就能随时识别文字了。在命令行中用pyinstaller xxx.py来打包生成exe文件,最后在生成的dist文件夹即可找到xxx.exe文件如下:最后附上整个源代码:

  1. #引入截图软件,获取文件到本地端,并识别图片文字,最后打包
  2. import keyboard #控制键盘
  3. from PIL import ImageGrab #保存图片
  4. import time
  5. from aip import AipOcr
  6. """ 你的 APPID AK SK """
  7. APP_ID = '17076767'
  8. API_KEY = 'Af3Rj5HALMz5AN8prSgwTH4m'
  9. SECRET_KEY = '******************'
  10. client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
  11. i = 0
  12. while True:
  13.     #1.截图
  14.     keyboard.wait('ctrl+alt+a')
  15.     print('开始截图')
  16.     keyboard.wait('enter')
  17.     print('保存截图')
  18.     time.sleep(0.1)
  19.     #2.保存图片
  20.     image = ImageGrab.grabclipboard()
  21.     image.save('img{}.png'.format(i))
  22.     """ 调用通用文字识别(高精度版) """
  23.     with open('img{}.png'.format(i), 'rb') as fp:
  24.         image = fp.read()
  25.         text_list = client.basicAccurate(image)['words_result']
  26.         for text in text_list:
  27.             print(text['words'])
  28.     i+=1

附图图片识别案例

结语

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对小编的支持。

  1. 推荐阅读(点击标题可跳转阅读)论文绘图神器来了:一行代码绘制不同期刊格式图表,哈佛博士后开源
  2. 华为提出十大数学挑战!解出一个就是年薪百万!
  3. 130个资源网站,总有一个你用得着
  4. 调包侠的快乐莫过于此
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/771020
推荐阅读
相关标签
  

闽ICP备14008679号