开放能力
开发平台
行业应用
生态合作
开发与教学
资讯 社区 控制台
技术能力
语音技术
图像技术
文字识别
人脸与人体识别
视频技术
AR与VR
自然语言处理
知识图谱
数据智能
场景方案
部署方案
行业应用
智能教育
智能医疗
智能零售
智能工业
企业服务
智能政务
智能农业
信息服务
智能园区
智能硬件
文字识别

    如何用代码调用OCR服务

    如何使用代码调用文字识别服务 API

    本文提供了通过代码快速调用 OCR 通用文字识别(高精度版)API 的样例,帮助您通过简单的编码编写快速熟悉并使用文字识别服务。视频教程请参见如何用代码调用API服务(视频版)

    1. 准备开发环境

    我们选择用 Python 来快速搭建一个原型,关于如何安装 Python。可以参考下表列出的不同操作系统的安装方法进行安装。

    Python的官方下载地址:下载Python

    Windows 快速测试包

    Windows 平台的用户如果对上述的 Python 安装感到困难,您可以下载我们的一键测试包,下载地址:Windows测试包

    解压 zip 文件后,双击 run.bat 即可测试。

    2. 编写代码

    新建一个 main.py

    粘贴以下内容,不要忘记替换您的 API_KEY 以及 SECRET_KEY

    # coding=utf-8
    
    import sys
    import json
    import base64
    
    
    # 保证兼容python2以及python3
    IS_PY3 = sys.version_info.major == 3
    if IS_PY3:
        from urllib.request import urlopen
        from urllib.request import Request
        from urllib.error import URLError
        from urllib.parse import urlencode
        from urllib.parse import quote_plus
    else:
        import urllib2
        from urllib import quote_plus
        from urllib2 import urlopen
        from urllib2 import Request
        from urllib2 import URLError
        from urllib import urlencode
    
    # 防止https证书校验不正确
    import ssl
    ssl._create_default_https_context = ssl._create_unverified_context
    
    API_KEY = 'GmhC18eVP1Fo1ECX911dtOzw'
    
    SECRET_KEY = 'PQ2ukO4Aec2PTsgQU9UkiEKYciavlZk8'
    
    
    OCR_URL = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic"
    
    
    """  TOKEN start """
    TOKEN_URL = 'https://aip.baidubce.com/oauth/2.0/token'
    
    
    """
        获取token
    """
    def fetch_token():
        params = {'grant_type': 'client_credentials',
                  'client_id': API_KEY,
                  'client_secret': SECRET_KEY}
        post_data = urlencode(params)
        if (IS_PY3):
            post_data = post_data.encode('utf-8')
        req = Request(TOKEN_URL, post_data)
        try:
            f = urlopen(req, timeout=5)
            result_str = f.read()
        except URLError as err:
            print(err)
        if (IS_PY3):
            result_str = result_str.decode()
    
    
        result = json.loads(result_str)
    
        if ('access_token' in result.keys() and 'scope' in result.keys()):
            if not 'brain_all_scope' in result['scope'].split(' '):
                print ('please ensure has check the  ability')
                exit()
            return result['access_token']
        else:
            print ('please overwrite the correct API_KEY and SECRET_KEY')
            exit()
    
    """
        读取文件
    """
    def read_file(image_path):
        f = None
        try:
            f = open(image_path, 'rb')
            return f.read()
        except:
            print('read image file fail')
            return None
        finally:
            if f:
                f.close()
    
    
    """
        调用远程服务
    """
    def request(url, data):
        req = Request(url, data.encode('utf-8'))
        has_error = False
        try:
            f = urlopen(req)
            result_str = f.read()
            if (IS_PY3):
                result_str = result_str.decode()
            return result_str
        except  URLError as err:
            print(err)
    
    if __name__ == '__main__':
    
        # 获取access token
        token = fetch_token()
    
        # 拼接通用文字识别高精度url
        image_url = OCR_URL + "?access_token=" + token
    
        text = ""
    
        # 读取测试图片
        file_content = read_file('./text.jpg')
    
        # 调用文字识别服务
        result = request(image_url, urlencode({'image': base64.b64encode(file_content)}))
    
        # 解析返回结果
        result_json = json.loads(result)
        for words_result in result_json["words_result"]:
            text = text + words_result["words"]
    
        # 打印文字
        print(text)

    3. 运行代码

    在命令行中运行python main.py

    4. 获取识别结果

    代码正确运行后,命令行界面上会显示出如下运行结果: 图片1.png

    返回的数据包含了图片中所有文字,详细的接口返回可以查看文档 文字识别API文档

    上一篇
    如何用Postman调用OCR服务
    下一篇
    购买指南