Python调用百度手写识别API,将手写笔记图片转换成文字

  • 事件起因

家里人有十几页手写笔记想要转成文字格式。网上搜了一下发现了百度有手写文字图片识别的api,于是拿来试试。
虽然最终效果并不理想,还是当做一次测试记录一下。
手里有手写笔记想要识别一下,也可以直接参考下面代码试试。

  • 代码

代码部分没什么好解释的
get_file_content()读取图片
get_access_token()你的百度开发者访问token
recognise_handwriting_pic()调用百度图片识别API,识别手写文字
最下面的for循环实际上就是逐个图片上传识别,输出结果。

import requests
import json
import base64


def get_file_content(filePath):
	""" 读取图片base64 """
	with open(filePath, 'rb') as fp:
		return base64.b64encode(fp.read())


def get_access_token():
	# API_Key,Secret_Key 需要在 https://console.bce.baidu.com/ai/?fromai=1#/ai/ocr/app/list 创建应用才能获得
	API_Key = '你的API_Key'
	Secret_Key = '你的Secret_Key'
	r = requests.post('https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id='+API_Key+'&client_secret='+Secret_Key)
	print(r.text)
	j = json.loads(r.text)
	access_token = j.get('access_token')
	print(access_token )
	return access_token 


def recognise_handwriting_pic(access_token,image_path):
	image = get_file_content(image_path)
	r = requests.post(
		url = 'https://aip.baidubce.com/rest/2.0/ocr/v1/handwriting?access_token='+access_token,
		headers={"Content-Type":"application/x-www-form-urlencoded"},
		data = {'image':image})
	#print(r.text)
	j = json.loads(r.text)
	words_result = j.get('words_result')
	for i in words_result:
		print(i.get('words'))

access_token = get_access_token()  # 获取一次保存下来就够了,一般1个月有效期

# 上传本地图片,逐页识别
for p in range(1,25):
	print('\n\n%s\n\n第%d页'%(' *'*20,p))
	recognise_handwriting_pic(access_token,image_path='C:/Users/kindle/Desktop/wzsb/'+str(p)+'.jpg')

  • 手写图片示例

手写图片示例

  • 识别结果

品种是工艺害.花色变化了
造型
岩物
无装饰设计先花敌”,是说不通纸,彩鸥无花你是鄙7
  • 结论

上面挑出来这张图,已经算是本次测试十几张图片中识别的不错的了,
总体而言,很可能你花在校对的时间会比你纯手打一遍还要长。
看来如果写的不是很标准,识别的出来的效果比较一般。
还有很多需要改进的地方。
嘛,这个功能也是刚刚上线测试,就不过多评论了。

PS:家人手中十几页手稿,因冷懒得打字。给其找了个语言录入APP,朗读了一遍,然后校对一下,结束。

  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要利用百度云 API 进行文字图片识别,可以按照以下步骤进行操作: 1. 首先,需要到百度云控制台注册账号并创建一个应用,获取到 API Key 和 Secret Key。 2. 安装 `baidu-aip` 库,这个库是百度云提供的官方 Python SDK,可以使用以下命令安装: ``` pip install baidu-aip ``` 3. 在 Python 代码中导入 `AipOcr` 类,创建一个实例,并设置 API Key 和 Secret Key: ```python from aip import AipOcr APP_ID = 'your app id' API_KEY = 'your api key' SECRET_KEY = 'your secret key' client = AipOcr(APP_ID, API_KEY, SECRET_KEY) ``` 4. 加载要识别图片: ```python with open('image.jpg', 'rb') as f: image = f.read() ``` 5. 调用 `client.basicAccurate` 方法进行文字识别: ```python result = client.basicAccurate(image) ``` 6. 解析返回的结果,可以得到识别出来的文字: ```python words = [] for item in result['words_result']: words.append(item['words']) print(words) ``` 完整的代码示例: ```python from aip import AipOcr APP_ID = 'your app id' API_KEY = 'your api key' SECRET_KEY = 'your secret key' client = AipOcr(APP_ID, API_KEY, SECRET_KEY) with open('image.jpg', 'rb') as f: image = f.read() result = client.basicAccurate(image) words = [] for item in result['words_result']: words.append(item['words']) print(words) ``` 需要注意的是,百度云 API 的免费额度是有限的,如果需要进行大量的文字图片识别,需要付费购买更多的调用次数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值