三十行代码教你做个通用文字识别程序

  • 准备
  • 开始编程
  • 测试

准备

在开始敲代码前,我们先做一些准备。我们的这个通用文字识别程序的原理很简单,就是通过API调用百度智能云提供的免费的通用文字识别(标准版)。
如果你没有相关账号的话,下面是教你怎么注册,如果有,请忽略:
首先访问AI Studio并注册相关账号

然后点击菜单栏的“更多”——“文档”:


接下来点击右上角的“控制台”:

左边的菜单来有“文字识别”,点击:

我这里已经创建了应用,如果没有的话,是会显示已建应用0个,接下来就是创建应用:

选择个人就好,名字、简介也随意,其余默认就好,创建好后,我们可以进入管理应用:
可以看到应用的API Key和Secret Key,待会会用到:

好了,准备过程到这里就结束了,我们开始上代码。

开始编程

先上代码:

# encoding:utf-8import requests
import base64'''
通用文字识别
'''
# client_id 为官网获取的AK, client_secret 为官网获取的SK
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=SPfIteu7L3vVVjfCHHUekVkK&client_secret=HZs1UKLggufge2aKaPGNHeSt5u7F4Hoq'
response = requests.get(host)
if response:access_token = response.json()['access_token']request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic"
# 二进制方式打开图片文件
f = open('C:\\Users\\沧海云帆\\Desktop\\13.jpg', 'rb')
img = base64.b64encode(f.read())params = {"image":img}
request_url = request_url + "?access_token=" + access_token
headers = {'content-type': 'application/x-www-form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
if response:words = response.json()['words_result']print ("图像文字识别结果:")for word in words:print(word['words'],end='')

先看前面一部分:

import requests # client_id 为官网获取的AK, client_secret 为官网获取的SK
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【官网获取的AK】&client_secret=【官网获取的SK】'
response = requests.get(host)
if response:print(response.json())

前面创建应用得到的AK,SK,填入host变量里,这样做的主要目的是获得access_token,这个是必须要的参数,后面会用到,包含在返回的response.json()的’access_token’中。
第二部分:

import requests
import base64'''
通用文字识别
'''request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic"
# 二进制方式打开图片文件
f = open('[本地文件]', 'rb')
img = base64.b64encode(f.read())params = {"image":img}
access_token = '[调用鉴权接口获取的token]'
request_url = request_url + "?access_token=" + access_token
headers = {'content-type': 'application/x-www-form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
if response:print (response.json())

这一部分没什么好讲的,就把自己的图片文件填进去,获得的鉴权填进去,然后就可以点击运行了,

{"log_id": 2471272194, "words_result_num": 2,"words_result": [{"words": " TSINGTAO"}, {"words": "青島睥酒"}]
}

这是返回的json文件的样例,识别出的文字就在“words_result”下,所以我们可以简单修饰一下,毕竟我们只需要识别出的文字。

测试

代码写好了,我们来测试一下,就随便从网上截个图吧,图片最好是.jpg格式:

运行代码看看:

文字:
捧碎瓷,落地有声,掌心有痕。时光远去,爱的碎瓷,光亮依旧,却带着某种惆怅的,点点落寞,爱的不死守望,爱的不老葱茏。相遇红尘,情缘深深,曾经几何?跌入爱的深谷,如今看透,爱也让人蹉
跎,愿化身成蝶,只为坚守一份不老情歌。—题记

总的来说还是不错的,当然毕竟是免费的,有些文字的识别还是有问题的,当然也可能是我的截图不太清晰的问题。

三十行代码教你做个通用文字识别程序相关推荐

  1. Python只需要三十行代码,打造一款简单的人工语音对话

    @Author:Runsen 1876年,亚历山大·格雷厄姆·贝尔(Alexander Graham Bell)发明了一种电报机,可以通过电线传输音频.托马斯·爱迪生(Thomas Edison)于1 ...

  2. 程序员的浪漫:三十行代码实现用她的名字作幅画

    程序员的浪漫:三十行代码实现用她的名字作幅画 hello,各位小伙伴们大家好,看这篇文章的有很多新的朋友,有估计有不少的老朋友,首先做个自我介绍,我是一灰灰,码农界的资深搬运工:今天呢,没有站在我身边 ...

  3. Python三十行代码实现简单人脸识别

    Python三十行代码实现简单人脸识别 一.库介绍 opencv,face_recognition,numpy,以及dlib 注意: 安装opencv速度可能过慢,需要更换国内镜像源,参考:https ...

  4. 阿里云OCR通用文字识别和自定义模板OCR识别Python代码及一站式教程

    阿里云OCR 一.通用文字识别 1.开通 2.PY3代码 3.测试结果 二.自定义模板识别 1.开通 2.进行自定义模板 3.代码 三.最后 一.通用文字识别 1.开通 开通链接:https://ma ...

  5. C#:调用百度接口实现文字识别(准备做一个截图文字识别软件)

    近期在做毕业设计,发现查看论文的时间太多了,然而百度文库或是PDF的文档要想复制真是费劲至极,于是准备做一个个人使用的截图文字识别软件,可以提高工作效率.那下面就做个简单介绍. 第一步:获取到你的AP ...

  6. java实现自动识别验证码并自动填写提交(调用百度通用文字识别OCR接口+大图找小图之图像识别算法+模拟鼠标键盘动作)

    一.使用的技术: 1.调用百度AI通用文字识别OCR接口 2.图像识别算法 二.实现方案与步骤: 1.得到验证码的图片的坐标:先将验证码截图,然后再对整个电脑屏幕截图,通过大图找小图的方法,计算出小图 ...

  7. HarmonyOS之AI能力·通用文字识别技术

    一.通用文字识别技术 通用文字识别的核心技术是 OCR(Optical Character Recognition,光学字符识别). OCR 是一种通过拍照.扫描等光学输入方式,把各种票据.卡证.表格 ...

  8. 通用文字识别API推荐

    今天给大家分享推荐一款很不错的API -- 通用文字识别OCR,多场景.多语种.高精度的整图文字检测和识别服务,多项指标行业领先,可识别中.英.日.韩.法.德多种语言.APISpace 上面有各种各样 ...

  9. asp写的百度ocr识别文字-通用文字识别(高精度版)源码下载

    今天接到一个客户需求,需要用ASP写一个百度OCR文字识别代码,他的程序都是用ASP写的,所以我们也需要用ASP给他实现百度OCR文字识别,我们在百度AI网站上启用了通用文字识别高精度版,利用高精度板 ...

最新文章

  1. hexo博客更新主题后上传Git操作
  2. matlab去除图片水印_Python利用OpenCV去除图片水印
  3. 在Nginx和Apache服务器配置https
  4. PHP rss聚合,利用PHP和AJAX创建RSS聚合器
  5. S5PV210开发 -- 通信
  6. 看C++文档的小知识
  7. 共享单车数据集_共享单车项目数据可视化展示
  8. 1196 骨牌铺放(宁波大学oj)
  9. 定义你自己的Logj4 输出,比如 数据库连接池 database connect pool
  10. GRUB 和 GRUB2 的区别
  11. 《高性能Linux服务器构建实战》——2.2节开始安装Varnish
  12. linux matconvnet编译,Windows/Linux平台下编译安装MatConvNet
  13. Xunsearch体验Demo
  14. LOGO特训营 第四节 字体设计的重要性
  15. java整理快捷鍵_常用Eclipse快捷键整理,提高效率
  16. 防范映像劫持(IFEO HIJACK)
  17. 计算机音乐来自天堂的魔鬼,来自天堂的魔鬼
  18. java代码校验手机号码_校验手机号码的正则表达式写法 (java实现)
  19. Win7 SP1 旗舰版
  20. 360 VS QQ:一场精心策划的西安事变(下)

热门文章

  1. python爬虫之无界面模式操作/scrapy框架
  2. Android Studio的省电模式
  3. 职称计算机每次评都要高吗,计算机评中级职称都需要什么?
  4. 如何巧妙使用7段码数码管?
  5. 使用cdn来加速字体文件在前端的加载速度,并监听字体是否加载完成
  6. #个人日记-电影《哆啦A梦:伴我同行2》观后感-20210530
  7. 机器学习驱动的人工智能搜集证据,揭穿商务欺诈、舞弊
  8. 工业级无线AP是什么
  9. web of science 校外访问方法
  10. BLM业务领导力模型