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)

运行程序,结果如图:

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

相关推荐
無限進步D3 小时前
Java 运行原理
java·开发语言·入门
是苏浙3 小时前
JDK17新增特性
java·开发语言
花酒锄作田5 小时前
企业微信机器人与 DeepAgents 集成实践
python·mcp·deepagents
阿里加多7 小时前
第 4 章:Go 线程模型——GMP 深度解析
java·开发语言·后端·golang
likerhood7 小时前
java中`==`和`.equals()`区别
java·开发语言·python
qq_283720057 小时前
Python Celery + FastAPI + Vue 全栈异步任务实战
vue.js·python·fastapi
2401_885885048 小时前
营销推广短信接口集成:结合营销策略实现的API接口动态变量填充方案
前端·python
zs宝来了8 小时前
AQS详解
java·开发语言·jvm
telllong8 小时前
Python异步编程从入门到不懵:asyncio实战踩坑7连发
开发语言·python
wjs202410 小时前
JavaScript 条件语句
开发语言