注:本文系湛江市第十七中学星火创客团队及岭南师范学院物联网俱乐部原创部分参赛项目,转载请保留声明
文章目录
调用百度智能云API实现python识别手写文字一、准备工具电脑端准备:1、python3.7环境2、pycharm IDE3、[百度智能云](/)手机端准备:4、手机IP摄像头app二、百度智能云创建实例应用三、创建pycharm python工程创建python文件工程1、 创建_init_.py文件2、创建ipdemo.py3、创建Handwritten.py效果展示调用百度智能云API实现python识别手写文字
在很多时候我们要使用到文字识别的功能,特别是有时候你上完课记录了一堆的笔记,但是却想数字化存储的时候
因而本文简述如何实现通过python和百度智能云,调用手机摄像头实现手写文字识别
一、准备工具
电脑端准备:
1、python3.7环境
2、pycharm IDE
Pycharm开发环境python 版本 python3.7 或者Anconda 集成开发环境
cmd窗口安装第三方库指令
Python 环境下
pip install opencv-pythonpip install baidu-aip
Anconda 环境
conda install opencv-pythonconda install baidu-aip
3、百度智能云
手机端准备:
4、手机IP摄像头app
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
二、百度智能云
创建实例应用
1、登陆注册百度智能云平台
2、创建实例
3、获取三元组
三、创建pycharm python工程
创建python文件工程
1、 创建_init_.py文件
这个文件只需要建立一个,置空就好,不需要放入任何东西
2、创建ipdemo.py
import cv2 # pip install openv-pythonfrom Handwritten import img_to_str # 导入 img_to_strif __name__ == '__main__':# 创建一个窗口 1表示不能改变窗口大小cv2.namedWindow("camera",1)# 开启ip摄像头# http://admin:admin@192.168.137.53:8081/video# 用户名/密码默认admin @ip地址 端口video = 'http://admin:admin@192.168.31.41:8081/video'# 开启摄像头capture = cv2.VideoCapture(video)# 按键处理while True:success,img = capture.read()cv2.imshow("camera",img)# 按键处理key = cv2.waitKey(10)# esc 退出if key == 27:print("esc break")break# 空格 保存图片if key ==32:filename = "filename.png"cv2.imwrite(filename,img)s = img_to_str(filename)print(s) #显示识别内容# 释放摄像头capture.release()#关闭窗口cv2.destroyWindow('camera')
代码如下(示例):
import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarnings.filterwarnings('ignore')import sslssl._create_default_https_context = ssl._create_unverified_context
3、创建Handwritten.py
from aip import AipOcr #pip install baidu-aipconfig = {'appId':'2338904','apiKey':'ptV5zanO6YjGPEPXu148Q3b','secretKey':'uBCFz1u4cEjrUmvMn2eU4HdaWXZMocG'}# appId apiKey secretKey 三元组,添加自己的创建应用里面的client = AipOcr(**config)# 获取图像内容def get_file_content(file):with open(file,'rb') as f:return f.read()# 文字 to 字符def img_to_str(image_path):image = get_file_content(image_path)result = client.handwriting(image)# print(result)if 'words_result' in result:return '\n'.join([w['words'] for w in result['words_result']])