百度OCR验证码识别连接

百度OCR验证码识别连接
+
简单的图片灰度化处理

1.安装

pip install baidu-aip

2.导入

from aip import AipOcr

3.创建应用

  • 登录百度AI开放平台
https://ai.baidu.com/
  • 进入控制台创建应用

选择自己需求的参数,点击创建,创建完成后查看应用详情即可看到以下参数:

常量APP_ID在百度云控制台中创建,常量API_KEYSECRET_KEY是在创建完毕应用后,系统分配给用户的,均为字符串,用于标识用户,为访问做签名验证,可在AI服务控制台中的应用列表中查看。

""" 你的 APPID AK SK """
APP_ID = '你的 App ID'
API_KEY = '你的 Api Key'
SECRET_KEY = '你的 Secret Key'
  • 配置AipOcr
如果用户需要配置AipOcr的网络请求参数(一般不需要配置),可以在构造AipOcr之后调用接口设置参数,目前只支持以下参数:

接口	                           说明
setConnectionTimeoutInMillis	建立连接的超时时间(单位:毫秒
setSocketTimeoutInMillis	    通过打开的连接传输数据的超时时间(单位:毫秒)

参考配置文档

https://ai.baidu.com/docs#/OCR-Python-SDK/top

代码如下:

#

from aip import AipOcr
from PIL import Image

""" 你的 APPID AK SK """
APP_ID = 'xxxxx'
API_KEY = 'xxxxxxxxxx'
SECRET_KEY = 'xxxxxxxxxxxxxx '

client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

""" 读取图片 """
def get_file_content(filePath):
    with open(filePath, 'rb') as fp:
        return fp.read()

#定义参数变量
options = {
    "recognize_granularity" :"big",
    "detect_direction": "true",
}


image = Image.open(r'C:\Users\Administrator\Desktop\7708.jfif')
# image=PIL.Image.open(r"C:\Users\Administrator\Desktop\5107.jfif")

# 灰度化
image = image.convert('L')
# 杂点清除掉。只保留黑的和白的。返回像素对象
data = image.load()
w, h = image.size
for i in range(w):
    for j in range(h):
        if data[i, j] > 125:
            data[i, j] = 255  # 纯白
        else:
            data[i, j] = 0  # 纯黑
image.save('clean_captcha.png')

# image2 = get_file_content(r'C:\Users\Administrator\Desktop\7708.jfif')
image2 = get_file_content('clean_captcha.png')
# print(image2)

""" 调用数字识别 """
result= client.numbers(image2)


# for key in result:
#     print(key,result[key])

print(result["words_result"][0]["words"])
""" 如果有可选参数 """
# options = {}
# options["recognize_granularity"] = "big"

# options["detect_direction"] = "true"

""" 带参数调用数字识别 """
client.numbers(image2, options)

你可能感兴趣的:(python)