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实现自动识别银行卡小工具相关推荐

  1. Python利用百度AI平台实现人脸识别

    前言 百度AI平台提供的接口十分丰富,对于做项目来说,百度是一个很好的开放平台.本文利用百度提供的接口来实现人脸识别,而且可以无限制调用.博客参考人脸识别-Python-SDK 安装 pip inst ...

  2. 基于百度AI平台的人脸识别评分小程序

    face-recognition-scoring-applet 开放源代码,遵循Apache License 2.0 效果展示 可切换摄像头.拍照.从相册选择 效果预览 小程序账号注册及配置 地址:h ...

  3. 利用百度AI接口实现车牌识别功能(一)

    百度大脑是百度 AI 核心技术引擎,包括视觉.语音.自然语言处理.知识图谱.深度学习等AI核心技术和AI开放平台.百度大脑对内支持百度所有业务,对外全方位开放,助力合作伙伴和开发者,加速AI技术落地应 ...

  4. 利用百度AI开放平台的语言处理基础技术(Python)

    百度AI开放平台是一个年轻的平台,2017年1月发布了词法分析,评论观点对抽取,短文本相似度等5种基础技术接口. 本篇文章使用python接入百度AI评论观点对抽取的接口,进行酒店评论文本数据的观点对 ...

  5. 利用百度AI开放平台识别干部培训网登录验证码

    先说能干啥能干啥,看视频. MyVideo_2 个人测试,百度AI平台验证码识别率还是很高的.下面是视频程序的源代码,欢迎跟大家进行交流. import datetime import json fr ...

  6. 基于百度AI平台的植物识别系统 新手适用!!

    前言:这学期选了模式识别和数字图像处理,这两门课的实验部分都需要使用python语言,所以学习了python并且写这个demo练一下手. 因为是练手,所以 模式识别 部分是调用百度提供的API完成的, ...

  7. python 利用百度AI实现文字识别(cv2 + aip module)

    python 利用百度AI实现文字识别(cv2 + aip module) (该案例将利用cv2,aip等模块,详细的安装以及使用的方法将在后文进行简单的介绍.) 一.KNN算法的简介(机器学习算法之 ...

  8. java 获取文件大小_利用百度AI OCR图片识别,Java实现PDF中的图片转换成文字

    序言:我们在读一些PDF版书籍的时候,如果PDF中不是图片,做起读书笔记的还好:如果PDF中的是图片的话,根本无法编辑,做起笔记来,还是很痛苦的.我是遇到过了.我们搞技术的,当然得自己学着解决现在的痛 ...

  9. 小福利,通过python利用百度ai实现图片识别

    大家好,我是天空之城,今天给大家带来小福利,通过python利用百度ai实现图片识别.有兴趣加qq群,纯学习,1098016198. 至于api接口的APP_ID ,API_KEY ,SECRECT_ ...

最新文章

  1. 平台数据库导入导出快捷工具说明
  2. 洛谷P4206 聪聪与可可
  3. ifconfig 命令介绍
  4. 1123 Is It a Complete AVL Tree (30 分)【难度: 难 / 平衡树 未完成】
  5. linux下开启dhcp服务器配置,CentOS下DHCP服务器的配置
  6. Java坦克大战(四)
  7. python编程 迷你世界_迷你编程电脑版|迷你世界迷你编程下载 v1.0官方版 - 绿点软件站...
  8. IIS 无法显示网页 目前访问网站的用户过多
  9. C#联合Halcon 自定义控件鼠标双击响应事件
  10. 【1】Keras复习之模型,层,训练,评估与预测
  11. 斐讯盒子t1 刷Android,T1刷机的详细步骤
  12. Math.round(-1.5) 等于多少
  13. 自建CA并签名server证书实现https
  14. 在c语言中 if语句后的一对原括号,c语言中if语句后的一对圆括号中
  15. 机器学习之决策树算法前期(创建、分类及展示)
  16. Sidecar:让 iPad 成为 Mac Mini 外接显示屏
  17. 2020年电商行业的前景
  18. 2018美团点评校招-K的倍数
  19. http协议网站配置SSL证书实现全站https协议
  20. 在代码中实现对各进程内存的监控

热门文章

  1. React 安装 node-sass失败解决方案
  2. follow Sam哥 OS 课程的漫长之路
  3. JSP中自定义jstl标签
  4. 一个架构师的价值在于,他不仅能看到系统的美,而且能够在建造系统的时候能够把这些美创造出来...
  5. 从开发者的角度比较Kubernetes和Cloud Foundry
  6. 傻瓜式免费自助建站系统,菜鸟建站理想工具
  7. 【带移动搜索功能】织梦dedecms手机WAP插件专业版 织梦自动建手机WAP站 PC+WAP数据同步更新 访问自动跳转
  8. updog的一个bug修复 支持多线程 视频播放支持跳转
  9. 图像处理之角点检测与亚像素角点定位
  10. 学习Linux的常见故障(待更新)