文字识别什么的有时候还是用得上, 所以无聊的时候尝试了一下使用百度提供的服务实现文字识别.
废话不多说, 咱们开始.
准备工作
- 访问网站: 百度智能云
- 通过百度帐号登入(如果没有百度帐号请自行注册一个.
相信大家都是老司机, 常用百度云, 怎么可能没有帐号, 是我废话了)
-
返回到首页后, 通过导航栏, 选择产品→人工智能→文字识别, 点击文字识别
- 进入文字识别页面后选择立即使用(
虽然是废话, 我还是一步步和大家介绍一下)
-
可以看到文字识别的页面如下 (这里我已经创建了一个应用, 大家如果没使用过应该是0个)
-
点击创建应用, 可以看到如下页面
-
这里根据你的需要填选, 如果没有什么特殊需求, 填上应用名字和描述就可以点击立即创建了. 然后可以在应用列表中看到如下信息. (可以看到AppID, API Key被我马赛克了, 因为一天免费调用次数有限, 现在大家也已经创建了, 接下来就使用自己的吧~)
现在, 接口已经准备好了, 我们可以开始实现了.
这次是使用的Python进行的实现, 所以在此之前, 如果计算机中没有Python环境的话, 可以先安装一下, 这个过程我就不再演示了, 毕竟大家都是成年人了, 准备python环境这样的小问题就百度一下吧.
那么我们继续吧!
在此之前一定要准备好python环境哦!
Python版本:
- 我们需要在python中安装baidu-aip模块.
在Dos窗口中执行pip install baidu-aip
,
- 然后我们创建一个python文件, 随便取个名字吧, 我这叫demo.py.
然后代码如下:
from aip import AipOcr
import re
import sys
import io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')
APP_ID='这里填写你的APP_ID'
API_KEY='这里填写你的API_KEY'
SECRECT_KEY='这里填写你的SECRECT_KEY'
client=AipOcr(APP_ID,API_KEY,SECRECT_KEY)
i=open(r'F:\Code\py\test.png','rb')
img=i.read()
message=client.basicGeneral(img)
for i in message.get('words_result'):
print(i.get('words'))
需要注意:
- APP_ID, API_KEY, SECRECT_KEY这三项记得填写大家刚刚在百度云智能中创建的应用相应的值
-
i=open(r'F:\Code\py\test.png','rb')
中的F:\Code\py\test.png
更改为你需要识别文字的图片
完成了, 运行即可.
那么我测试一下, 我的test.png是一张这样的图片:
运行结果(控制台中):
ps: 如果你不知道如何运行.py文件, 那么也请百度一下吧!
我在尝试期间遇到的问题, vscode中运行python, 输出到控制台的中文乱码了. 解决方式如下
-
确保python 编码为utf8, 配置环境变量
在文件加入如下代码文中代码已经加入
import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')
………………………………