Python利用Face++实现身份证件图片识别


引言

放假在家闲来无事,看到一个接口,于是想试着用这几天学的Python玩玩,就用Python的urllib2对接了身份证图片识别接口,这里面还有很多关于图片识别类的接口(虽然有些要钱),不过里面文字识别和场景识别还有证件识别是免费的,初尝Python,屡试不爽。

对于Python还在摸索当中,欢迎各位赐教,让我能更好的进步。


版权所有:CSND_Ayo,转载请注明出处:http://blog.csdn.net/csnd_ayo

简介

编程IDE:Pycharm 2016.1.2

开发环境:Python 2.7.13

操作系统:Window 7


接口

Face++ 接口:https://www.faceplusplus.com.cn/

接口协议:HTTP 协议 POST


由于最近有人邮件跟我说,POST老是不响应,原因我看了下,因为是免费用户频繁调用,他们服务器自动屏蔽一段时间,防止恶意调用(说白了就是免费的,休想有优质服务),大家可以自己创建帐号,用自己的密钥和公钥,也许这样会稍微好一点。


赏析

Python利用Face++实现身份证件图片识别_第1张图片



源码


# -*- coding: utf-8 -*-

#
# Face++ 身份证图片识别
# 作者:陈鲁勇
# 邮箱:[email protected]
# 创建时间:2017年04月01日04:26:48
# Python版本:2.7.13
# CSDN:http://blog.csdn.net/csnd_ayo 
#

import urllib2
import urllib
import time
import json

########################################################################

# 协议URL
http_url='https://api-cn.faceplusplus.com/cardpp/v1/ocridcard'
# 公钥
key = "q9LNKjuFDAbUbfh5VG8FEMdJqyVVexM3"
# 密钥
secret = "bYTXhWRlT-DhfCf45dp2R50adZTu8wVd"
# 身份证件地址 支持PNG\JPG格式
filepath = r"F:/project/Python/inteface/python-sdk-master/python-sdk/demo.jpg"
# 参数协议分割标识
boundary = '----------%s' % hex(int(time.time() * 1000))

########################################################################
# 制作协议包
data = []
data.append('--%s' % boundary)
data.append('Content-Disposition: form-data; name="%s"\r\n' % 'api_key')
data.append(key)
data.append('--%s' % boundary)
data.append('Content-Disposition: form-data; name="%s"\r\n' % 'api_secret')
data.append(secret)
data.append('--%s' % boundary)
fr=open(filepath,'rb')
data.append('Content-Disposition: form-data; name="%s"; filename="CSND_Ayo.jpg"' % 'image_file')
data.append('Content-Type: %s\r\n' % 'application/octet-stream')
# print data
data.append(fr.read())
fr.close()
data.append('--%s--\r\n' % boundary)

########################################################################

# 发送POST请求
http_body='\r\n'.join(data)
req=urllib2.Request(http_url)
req.add_header('Content-Type', 'multipart/form-data; boundary=%s' % boundary)
req.add_data(http_body)

########################################################################

resp = urllib2.urlopen(req, timeout=5)
# 获得结果
qrcont=resp.read()
# 打印结果
json_dict = json.loads(qrcont)
for items in json_dict['cards']:
    for item in items:
        if type(items[item]) != int:
            print ("%s=%s" % (item,items[item]))
        else:
            print ("%s=%d" % (item,items[item]))

########################################################################


你可能感兴趣的:(Python,《Python,必知必会》)