python 调用百度ORC进行文字识别

摘要:
client_Secret=此处被Secretkey'request=urllib2替换。Request(host)Request.add _ Header('内容类型',我将在这里演示API的一般版本。如果您想用文本标识web图像,url='https:#这是您要标识的web图像的地址'Content-Type':

最近大神推荐一个新的东西,orc文字识别,是免费的,感觉特别不错,所以打算自己弄来玩玩。

首先要自己上百度申请一个账号https://cloud.baidu.com/product/ocr.html,登陆百度云,然后添加一个应用。创建好应用以后,就跟图片中一样,其中的API KEY 和 Secret Key 要记住,等会调用的时候要用到。python 调用百度ORC进行文字识别第1张

创建好应用以后,首先要调用登陆接口来获得access_token,这里要用到APIKEY 和 SECRET KEY,代码如下

host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=这里替换成你的APIKEY&client_secret=这里替换成你的Secret key'
request = urllib2.Request(host)
request.add_header('Content-Type', 'application/json; charset=UTF-8')
response = urllib2.urlopen(request)
content = response.read()
if (content):
  coco=json.loads(content)
  print(coco['access_token'])

获得access_token 以后就可以调用接口,接口文档在官网的技术文档里有,我这里就只示范一下通用版的api

python 调用百度ORC进行文字识别第2张

如果你想要文字识别网络图片

url = 'https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic'
values = {
        'access_token':coco['access_token'],#这里是你之前获取的access_token
        'url':imgurl,#这里是你要识别的网络图片的地址
        'Content-Type':'application/x-www-form-urlencoded',
        'language_type':'ENG'  #这里我的语言设置成只识别英文
    }
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
the_page = response.read()
result = json.loads(the_page)
print result['words_result']

尝试用来识别有些网站登陆时需要输入的验证码,感觉效果还不错,但是如果字母重叠了就会有误判。

python 调用百度ORC进行文字识别第3张

此外,如果想要识别本地的图片,需要对图片进行base64编码。

with open("orc.png","rb") as f:  
        # b64encode是编码,b64decode是解码  
        imagedata = base64.b64encode(f.read())

url = 'https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic'
values = {
        'access_token':coco['access_token'],
        'image':imagedata,
        'Content-Type':'application/x-www-form-urlencoded',
        'language_type':'ENG'
    }
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
the_page = response.read()
result = json.loads(the_page)
return result['words_result']

下面我打包了一个函数,输入参数是网络图片的地址,输出就是识别结果,小伙伴们可以直接复制过去调用

import urllib, urllib2, sys,json,base64
import ssl
def orcPic(imgurl):
    appkey = '你的appkey'
    secretkey= '你的secretkey'
    # client_id 为官网获取的AK, client_secret 为官网获取的SK
    host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id='+appkey+'&client_secret='+secretkey
    request = urllib2.Request(host)
    request.add_header('Content-Type', 'application/json; charset=UTF-8')
    response = urllib2.urlopen(request)
    content = response.read()
    if (content):
        coco=json.loads(content)

    url = 'https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic'
    values = {
        'access_token':coco['access_token'],
        'url':imgurl,
        'Content-Type':'application/x-www-form-urlencoded',
        'language_type':'ENG'
    }
    data = urllib.urlencode(values)
    req = urllib2.Request(url, data)
    response = urllib2.urlopen(req)
    the_page = response.read()
    result = json.loads(the_page)
    return result['words_result']

免责声明:文章转载自《python 调用百度ORC进行文字识别》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Java中System.setProperty()用法VS2017.常量中有换行符下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vue 2.0 及 vue 3.0 rem配置

vue 2.0 配置 rem   首先先安装postcss-px2rem    (百度可以) https://www.jianshu.com/p/e6476bbc2131     npm install postcss-px2rem 找到文件 build / vue-loader.config.js  添加 const px2rem = require('...

GET和POST请求区别

关于http协议GET和POST方法的区别我们可以从各处得到比较一致的答案,今天我们来填一个面试中可能碰到的一个坑。 当面试官问你“你觉得GET和POST有什么区别"时,我们可能会想到以下几点(来源于网络): GET在浏览器回退时是无害的,而POST会再次提交请求。 GET产生的URL地址可以被Bookmark,而POST不可以。 GET请求会被浏览器主...

字典(dict),增删改查,嵌套

一丶字典  dict 用{}来表示  键值对数据  {key:value}  唯一性   键  都必须是可哈希的  不可变的数据类型就可以当做字典中的键   值  没有任何限制 二丶字典的增删改查  1.增     dic[key] = value     dic.setdefault(key,value)     如果键在字典中存在,则不进行任何操作,否...

URL的各个组成部分详解

构造一个完整URL例子: http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#r_70732423 一个完整的URL包括:协议部分、域名部分、端口部分、虚拟目录部分、文件名部分、参数部分、锚部分 1.协议部分:该URL的协议部分为“http:”,这代表网...

vue 调用图片(服务器和本地)

一、本地(一般调用有三种办法) <script> //方法1.直接将图片引入为模块 require imgUrl from "../assets/test.png" //方法2.将imgUrl放在数据里 data(){ return { imgUrl:require("....

爬虫实战(三) 用Python爬取拉勾网

目录 0、前言 1、初始化 (1)准备全局变量 (2)启动浏览器 (3)打开起始 URL (4)设置 cookie (5)初始化部分完整代码 2、爬取数据 (1)爬取网页数据 (2)进行翻页操作 (3)爬取数据部分完整代码 3、保存数据 4、数据可视化 5、大功告成 (1)完整代码 (2)运行过程 (3)运行结果 0、前言 最...