通过使用用百度AI的OCR来自动识别图片中的文字,效果很不错。
在这里跟大家简单分享一下如何使用,在处理图片前,最好先经过灰度化、二值化、降噪等预处理,直接上代码:
# encoding:utf-8 import requests import base64 def get_access_token(): '''获取access_token''' API_KEY = 【'官网获取的AK'】#通过百度账号登陆百度AI,进入控制台,创建对应的应用就能获得 SECRET_KEY = 【'官网获取的SK'】 # client_id 为官网获取的AK, client_secret 为官网获取的SK host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={}&client_secret={}'.format(API_KEY,SECRET_KEY) response = requests.get(host) return response.json().get('access_token') def get_text(): '''获取验证码文本''' img_name = input("请输入需要识别的图片文件名:") with open(img_name,'rb') as f: img_data = f.read() request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic" #高精度版 # request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic" 标准版 # 二进制方式打开图片文件 img = base64.b64encode(img_data) params = {"image":img} access_token = get_access_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.json()["words_result"]: return response.json()["words_result"][0]["words"].replace(' ','') else: return '未能成功识别' if __name__ == '__main__': text = get_text() print('验证码:%s'%text)