利用百度AI平台+pyqt5实现自动识别银行卡小工具
1.首先需申请一个百度AI接口http://ai.baidu.com/,点击进入
选择控制台->图像处理,进入后选择创建应用,选择文字识别->银行卡识别
如下图,获得API Key和Secret Key,通过如下http请求获得access_token,此值后续有用
https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=APIKey的值&client_secret=SecretKey的值
详细鉴权认证见此链接: http://ai.baidu.com/docs#/Auth/top
银行卡识别调用方式接口文档见:
https://cloud.baidu.com/doc/OCR/OCR-API.html#.E8.B0.83.E7.94.A8.E6.96.B9.E5.BC.8F.E4.B8.80
2.pyqt5制作界面Main.UI,按钮下面放两个label,一个用来显示银行卡原图,一张显示识别的结果
3.将ui转为python,在此基础上添加业务代码
代码如下:
# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'MainForm.ui'
#
# Created by: PyQt5 UI code generator 5.12.1
#
# WARNING! All changes made in this file will be lost!from PyQt5 import QtCore, QtGui, QtWidgets
import sys
import os
import base64
import urllib.request
import jsonclass Ui_Dialog(object):access_token = '24.6c5e1ff107f0e8bcef8c46d3424a0e78.2592000.1485516651.282335-8574074'def setupUi(self, Dialog):Dialog.setObjectName("Dialog")Dialog.resize(566, 526)self.widget = QtWidgets.QWidget(Dialog)self.widget.setGeometry(QtCore.QRect(20, 40, 541, 461))self.widget.setObjectName("widget")self.pb_get = QtWidgets.QPushButton(self.widget)self.pb_get.setGeometry(QtCore.QRect(170, 40, 75, 31))self.pb_get.setObjectName("pb_get")self.pb_choose = QtWidgets.QPushButton(self.widget)self.pb_choose.setGeometry(QtCore.QRect(60, 40, 75, 31))self.pb_choose.setObjectName("pb_choose")self.label_image = QtWidgets.QLabel(self.widget)self.label_image.setGeometry(QtCore.QRect(30, 120, 471, 171))self.label_image.setText("")self.label_image.setObjectName("label_image")self.label_Result = QtWidgets.QLabel(self.widget)self.label_Result.setGeometry(QtCore.QRect(20, 330, 481, 111))self.label_Result.setText("")self.label_Result.setObjectName("label_Result")self.retranslateUi(Dialog)QtCore.QMetaObject.connectSlotsByName(Dialog)self.pb_choose.clicked.connect(self.openfile)self.pb_get.clicked.connect(self.gain_bankcard)def retranslateUi(self, Dialog):_translate = QtCore.QCoreApplication.translateDialog.setWindowTitle(_translate("Dialog", "银行卡识别"))self.pb_get.setText(_translate("Dialog", "自动识别"))self.pb_choose.setText(_translate("Dialog", "选择图片"))# 如下为添加业务代码def openfile(self):# 启动选择文件对话框,查找jpg以及png图片self.download_path =QtWidgets.QFileDialog.getOpenFileName(self.widget,caption='选择要识别的图片',\directory='/',filter='Image Files(*.jpg *.png)')# 判断是否选择图片if not self.download_path[0].strip(): # 没有选择图片passelse:pixmap = QtGui.QPixmap(self.download_path[0]) # pixmap解析图片scaredPixmap = pixmap.scaled(QtCore.QSize(311,301)) # d等比例缩放图片self.label_image.setPixmap(scaredPixmap) # 标签控件中设置图片self.label_image.show() #标签控件中显示图片pass# 读取文件def get_file_content(self,filePath):with open(filePath, 'rb') as fp:return fp.read()# 获得银行卡信息def gain_bankcard(self):try:#access_tokenrequest_url = 'https://aip.baidubce.com/rest/2.0/ocr/v1/bankcard'# 二进制方式打开图片文件print(str(self.download_path[0]))f = self.get_file_content(self.download_path[0])img = base64.b64encode(f)params = {'image':img}params = urllib.parse.urlencode(params).encode('utf-8')request_url = request_url + "?access_token="+self.access_tokenprint(request_url)# 请求百度云AI银行卡接口request = urllib.request.Request(url=request_url,data=params)request.add_header('Content-Type','application/x-www-form-urlencoded')response = urllib.request.urlopen(request)content = response.read()Info = '结果'if content:bankcards =json.loads(content)try:# 判断银行卡类型if bankcards['result']['bank_card_type'] == 0:bank_card_type = '不能识别'elif bankcards['result']['bank_card_type'] == 1:bank_card_type = '借记卡'elif bankcards['result']['bank_card_type'] == 2:bank_card_type = '信用卡'card_number = bankcards['result']['bank_card_number']bank_name = bankcards['result']['bank_name']Info = (' 卡号:{0}\n 银行:{1}\n 类型:{2}').format(card_number,bank_name,bank_card_type)except BaseException:error_msg = bankcards['error_msg']Info = 'error:'+error_msg#设置识别显示结果self.label_Result.setText(Info)except Exception as e:print(e)def Show_MainWindow():app = QtWidgets.QApplication(sys.argv) # 实例化QApplication类,作为GUI主程序入口MainWindow = QtWidgets.QMainWindow() # 创建MainWindowui = Ui_Dialog() # 实例UI类ui.setupUi(MainWindow) # 设置窗体UIMainWindow.show() # 显示窗体sys.exit(app.exec_()) # 当窗口创建完成,需要结束主循环过程if __name__ == "__main__":Show_MainWindow()
程序运行:选中图片,点击自动识别即可正确识别
利用百度AI平台+pyqt5实现自动识别银行卡小工具相关推荐
- Python利用百度AI平台实现人脸识别
前言 百度AI平台提供的接口十分丰富,对于做项目来说,百度是一个很好的开放平台.本文利用百度提供的接口来实现人脸识别,而且可以无限制调用.博客参考人脸识别-Python-SDK 安装 pip inst ...
- 基于百度AI平台的人脸识别评分小程序
face-recognition-scoring-applet 开放源代码,遵循Apache License 2.0 效果展示 可切换摄像头.拍照.从相册选择 效果预览 小程序账号注册及配置 地址:h ...
- 利用百度AI接口实现车牌识别功能(一)
百度大脑是百度 AI 核心技术引擎,包括视觉.语音.自然语言处理.知识图谱.深度学习等AI核心技术和AI开放平台.百度大脑对内支持百度所有业务,对外全方位开放,助力合作伙伴和开发者,加速AI技术落地应 ...
- 利用百度AI开放平台的语言处理基础技术(Python)
百度AI开放平台是一个年轻的平台,2017年1月发布了词法分析,评论观点对抽取,短文本相似度等5种基础技术接口. 本篇文章使用python接入百度AI评论观点对抽取的接口,进行酒店评论文本数据的观点对 ...
- 利用百度AI开放平台识别干部培训网登录验证码
先说能干啥能干啥,看视频. MyVideo_2 个人测试,百度AI平台验证码识别率还是很高的.下面是视频程序的源代码,欢迎跟大家进行交流. import datetime import json fr ...
- 基于百度AI平台的植物识别系统 新手适用!!
前言:这学期选了模式识别和数字图像处理,这两门课的实验部分都需要使用python语言,所以学习了python并且写这个demo练一下手. 因为是练手,所以 模式识别 部分是调用百度提供的API完成的, ...
- python 利用百度AI实现文字识别(cv2 + aip module)
python 利用百度AI实现文字识别(cv2 + aip module) (该案例将利用cv2,aip等模块,详细的安装以及使用的方法将在后文进行简单的介绍.) 一.KNN算法的简介(机器学习算法之 ...
- java 获取文件大小_利用百度AI OCR图片识别,Java实现PDF中的图片转换成文字
序言:我们在读一些PDF版书籍的时候,如果PDF中不是图片,做起读书笔记的还好:如果PDF中的是图片的话,根本无法编辑,做起笔记来,还是很痛苦的.我是遇到过了.我们搞技术的,当然得自己学着解决现在的痛 ...
- 小福利,通过python利用百度ai实现图片识别
大家好,我是天空之城,今天给大家带来小福利,通过python利用百度ai实现图片识别.有兴趣加qq群,纯学习,1098016198. 至于api接口的APP_ID ,API_KEY ,SECRECT_ ...
最新文章
- 平台数据库导入导出快捷工具说明
- 洛谷P4206 聪聪与可可
- ifconfig 命令介绍
- 1123 Is It a Complete AVL Tree (30 分)【难度: 难 / 平衡树 未完成】
- linux下开启dhcp服务器配置,CentOS下DHCP服务器的配置
- Java坦克大战(四)
- python编程 迷你世界_迷你编程电脑版|迷你世界迷你编程下载 v1.0官方版 - 绿点软件站...
- IIS 无法显示网页 目前访问网站的用户过多
- C#联合Halcon 自定义控件鼠标双击响应事件
- 【1】Keras复习之模型,层,训练,评估与预测
- 斐讯盒子t1 刷Android,T1刷机的详细步骤
- Math.round(-1.5) 等于多少
- 自建CA并签名server证书实现https
- 在c语言中 if语句后的一对原括号,c语言中if语句后的一对圆括号中
- 机器学习之决策树算法前期(创建、分类及展示)
- Sidecar:让 iPad 成为 Mac Mini 外接显示屏
- 2020年电商行业的前景
- 2018美团点评校招-K的倍数
- http协议网站配置SSL证书实现全站https协议
- 在代码中实现对各进程内存的监控
热门文章
- React 安装 node-sass失败解决方案
- follow Sam哥 OS 课程的漫长之路
- JSP中自定义jstl标签
- 一个架构师的价值在于,他不仅能看到系统的美,而且能够在建造系统的时候能够把这些美创造出来...
- 从开发者的角度比较Kubernetes和Cloud Foundry
- 傻瓜式免费自助建站系统,菜鸟建站理想工具
- 【带移动搜索功能】织梦dedecms手机WAP插件专业版 织梦自动建手机WAP站 PC+WAP数据同步更新 访问自动跳转
- updog的一个bug修复 支持多线程 视频播放支持跳转
- 图像处理之角点检测与亚像素角点定位
- 学习Linux的常见故障(待更新)