03-12306验证码文字 识别

将切割后的12306验证码,文字部分传入 函数,函数调用百度文字识别接口,识别12306图片中的文字。

# utf-8 __*__
import base64
import numpy as np
import cv2 as cv
import urllib.parse
import requests
import json

imgF  = 'F:\\python\\data\\title.png'
API_key = '********'  #从百度云中心获取
Secret_key = '**********' # 从百度云中心获取
get_token_url = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&' + 'client_id=' + API_key + '&client_secret=' + Secret_key


def getORC_words(imgF, API_key, Secret_key):
    """
    传入带 文字的图片,调用 百度文字识别API借口,识别图片中的问题并返回识别出来的文字
    :param imgF:
    :param API_key:
    :param Secret_key:
    :return:
    """
    data = {
        'image_type': 'BASE64',
        'image': '',
        'group_id': 'gropu001',
        'user_id': '0001'
    }

    # 打开图片文件,对文件进行BASE64转码
    img_file = open(imgF, 'rb')
    img_b664encode = base64.b64encode(img_file.read())
    img_file.close()
    data['image'] = img_b664encode

    # 合成token获取URL,获取token并合成文字识别 请求API链接
    get_token_url = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&' + 'client_id=' + API_key + '&client_secret=' + Secret_key
    header = {'Content-Type': 'application/x-www-form-urlencoded'}
    r = requests.post(get_token_url)
    orc_url = ' https://aip.baidubce.com/rest/2.0/ocr/v1/accurate?access_token=' + json.loads(r.text)['access_token']

    # 识别文字,并返回结果
    orc = requests.post(orc_url, headers=header, data=data)
    try:
        words = json.loads(orc.text)['words_result'][0]['words']
        return words
    except Exception as e:
        print(e)
        return -1

print(getORC_words(imgF, API_key, Secret_key))

 

你可能感兴趣的:(Python12306)