python使用百度AipOCR来实现图像文字识别

上篇文字讲到了可以截屏手机模拟器上的界面并传回电脑上,文章链接

python将手机模拟器截屏并发送至电脑上_小小爬虾的博客-CSDN博客

传回来以后,就可以识别出图片中的文字内容了。

我使用的是Python3.10.4+百度的AipOCR库实现图像文字识别。

1、首先安装库

参考我的文章如何在python3下安装库

记录一下python2和python3在同一台电脑上共存使用并安装各自的库以及各自在pycharm中使用的方法_小小爬虾的博客-CSDN博客

pip3 install baidu-aip -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

pip3 install chardet

2、获取百度文字识别的Key

(1)登陆网址百度文字识别,覆盖全面,响应迅速,准确率超99%-百度AI开放平台

(2)进入控制台https://console.bce.baidu.com/ai/#/ai/speech/app/list

(3)创建应用

(4)写应用名字,接口选择,应用归属,应用描述

(5)创建后返回列表即可得到Key

APP_ID = '39108806'

API_KEY = '6uA3Zfghijklmnopqrstuvw'

SECRET_KEY = 'jV18PFGHIJKLMNOPQRSTUVW'

3、写代码

python 复制代码
from aip import AipOcr

#百度识别的KEY
APP_ID = '12345678'
API_KEY = 'abcdefghijklmnopqrstuvw'
SECRET_KEY = 'ABCDEFGHIJKLMNOPQRSTUVW'
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
def baidu_ocr_text(img_p_n):
    # 百度文本识别AipOcr
    image = open(img_p_n, 'rb').read()
    #识别模式,有好几种,下面有介绍
    msg = client.basicGeneral(image)
    text = 'result:\n'
    for i in msg.get('words_result'):
        text += (i.get('words') + '\n')
    print(type(text))
    text=text.replace('\u04B0','').replace('\uFFE5','').replace('\u00A5','')
    print(text)

def main():
    baidu_ocr_text("./img/example.png")

if __name__ == '__main__':
    main()

百度文字识别有几种模式,经研究如下:

python 复制代码
# 标准版    
msg = client.basicGeneral(image)

# 高精度版
msg = client.basicAccurate(image)

# 通用文字识别(含位置信息版)
msg = client.general(image)

# 通用文字识别(含位置高精度版)
msg = client.accurate(image)

# 通用文字识别(含生僻字版)
msg = client.enhancedGeneral(image)
#{u'error_code': 6, u'error_msg': u'No permission to access data'},不知道何种原因

#网络图片文字识别
msg = client.webImage(image)
#如果提示{u'error_code': 17, u'error_msg': u'Open api daily request limit reached'},百度识别每日有上限

4、给出一张图片(比如手机截屏的图片./img/example.png)

运行程序,结果如图:

可见由上至下、由左至右将图片中的文字识别,还是很准确的。

相关推荐
add45a8 分钟前
C++中的观察者模式
开发语言·c++·算法
sw1213899 分钟前
Python字典与集合:高效数据管理的艺术
jvm·数据库·python
进击的小头11 分钟前
第13篇:基于伯德图的超前_滞后校正器深度设计
python·算法
该怎么办呢17 分钟前
Source/Core/Event.js
开发语言·javascript·ecmascript·cesium
似水明俊德18 分钟前
04-C#.Net-委托和事件-面试题
java·开发语言·面试·c#·.net
johnrui34 分钟前
集合与树形结构
开发语言·windows
m0_7380980239 分钟前
使用Python操作文件和目录(os, pathlib, shutil)
jvm·数据库·python
好家伙VCC41 分钟前
# 发散创新:用 Rust构建高性能游戏日系统,从零实现事件驱动架构 在现代游戏开发中,**性能与可扩展性**是核心命题。传统基于
java·python·游戏·架构·rust
该怎么办呢1 小时前
Source/Core/DeveloperError.js
开发语言·javascript·ecmascript
小璐资源网1 小时前
Java 21 新特性实战:虚拟线程详解
java·开发语言·python