基于Python的Opencv 自动识别银行卡卡号系统
一、 摘要
此应用功能为自动识别并获取银行卡卡号,通过导入需要识别的银行卡图片,以及跟银行卡上卡号的数字相一致的数字模型,则可以成功实现识别并获取银行卡卡号的功能。如果你对此感兴趣的话,下面将会详细介绍具体的开发过程。
二、 引言
这是我作为小白学习Python了解的第一个Opencv项目,所以文章多有不足之处,愿可以多多指点,本人虚心求教,也可以一起学习哦!!!!
1)首先代码的环境是基于Anaconda3(Python2.7)+Opencv(python)+Eclipse(pydev),具体的安装过程可以参照参考文献链接里的第一个视频,遇到问题不要着急多查多试一定能解决的。
2)代码的应用意义旨在快速自动、准确、识别、获取卡号信息,取代了以往人工抄写的方式,可以提高卡号信息的获取正确率以及工作的时效。
3)本代码虽然不需要太深入了解Opencv相关知识,但需提前掌握以下知识点的学习
a.图像的基本操作(图像数据的读取、显示、保存、属性打印等等)、截取部分图像数据、颜色通道提取、边界填充、数值计算
b.图像阈值、图像平滑(均值滤波、方框滤波、高斯滤波等等)
c.图像形态学处理(腐蚀操作、膨胀操作、开运算与闭运算、梯度运算、礼帽与黑帽)
d.图像梯度计算方法(Sobel算子、Scharr算子等)
e.边缘检测(Canny边缘检测算法)
f.图像金字塔、轮廓检测(检测、绘制轮廓、轮廓特征、轮廓近似)、模板匹配
g.直方图、傅里叶变换
4)代码功能要求实现:导入图一与图二之后,将得到图三所示数据!
三、 代码整体设计思想结构图:
四、 代码+模块分析+结果对应展示
1、模板处理代码部分
2、 银行卡图片处理代码
如图三所示,由于初始导入的银行卡片上背景信息复杂,所以先进行预处理以及一些形态学处理之后,则有利于我们进行准确检测我们需要的卡号轮廓信息的工作
五、应用使用步骤:
如图四所示,执行代码时需要在.py文件后加( -i images/银行卡图片文件名 -t ocr_a_reference.png),执行即可
六. 总结和展望图
小白一枚,初次尝试,希望自己能继续坚持完成后面一系列的学习,下次能达到自己一开始定下的目标
基于Python的Opencv 自动识别银行卡卡号系统相关推荐
- Python+OpenCV 识别银行卡卡号
Python+OpenCV 识别银行卡卡号 今天尝试一下用python+OpenCV,使用模板匹配的方式做个简单地识别银行卡卡号(大部分参考网上的,自己改了一部分,代码写的有点不太好,但是思路很清晰, ...
- 学习Opencv+Python之银行卡卡号识别
学习Opencv+Python之银行卡卡号识别 思路: 获取模板轮廓 获取模板中每个数字的轮廓 获取银行卡卡号轮廓 分别提取卡号中的每个数字的轮廓 对比识别 代码: # 导入工具包 from imut ...
- 使用Python,OpenCV进行银行支票数字和符号的OCR
使用Python,OpenCV进行银行支票数字和符号的OCR(第一部分) 1. 效果图 2. 原理 2.1 MICR E-13B字体 2.2 从MICR E-13B参考图像中提取数字和符号 3. 源码 ...
- 基于Python的OpenCV+TensorFlow+Keras人脸识别实现
前言:本节要讲的人脸识别主要是借鉴了 一位研究生前辈的文章 我只是在他的基础上进行了改动,让代码能在现在的TensorFlow2.X 等的环境下运行 先看一下效果图 完整工程及源代码请点击链接下载:人 ...
- 基于Python通过OpenCV实现的口罩识别系统理论篇
基于Python通过OpenCV实现的口罩识别系统理论设计篇 一.项目实现环境 基于Python 3.8.1版本 opencv-python 4.2.0.34版本 需要自己下载OpenCV的库文件,添 ...
- 银联银行卡卡号java_编写Java程序,使用单例模式,创建可以生成银联借记卡号的工具类...
编写Java程序,使用单例模式,创建可以生成银联借记卡号的工具类 编写Java程序,使用单例模式,创建可以生成银联借记卡号的工具类,银联借记卡号是一个 19 位的数字,卡号以"62" ...
- ubuntu16.04安装python.h_ubuntu16.04 下基于 Python 的 OpenCV 的安装
ubuntu16.04 下基于 Python 的 OpenCV 的安装 这几天一直在学习基于 Python 的 OpenCV , 开发环境是在 Ubuntu16.04 下, 学习的心得就是基于 Pyt ...
- 前端JS校验银行卡卡号和身份证号码(附ES6版方法)
1.银行卡卡号校验方法. function luhnCheck(bankno) { var lastNum = bankno.substr(bankno.length - 1, 1); //取出最后一 ...
- 银行卡卡号格式规范 每隔4为一个空格
最近涉及到一个绑定银行卡的需求,需要格式化银行卡卡号.即:每隔4为做一个空格. 一个很简单的功能,大牛请自动忽略... 做个笔记O(∩_∩)O哈! bankCardNoEditTxt.addTextC ...
最新文章
- top命令的笔记补充2--如何将top信息后台运行并写入log
- python读取excel-蜗牛笔记-文章-Python读取Excel文件
- thinkcmf安装模板需要点击右键打开新页面的解决办法
- REVERSE-PRACTICE-JarvisOJ-4
- 职称计算机技巧集锦,2014职称计算机考试《Excel》使用技巧集锦(4)
- 将一张100元按如下要求C语言,aoa三一宝典(计算机二级考试)
- C#获取C# DLL中的指定接口的所有实现实例 - qq_19759475的博客 - CSDN博客
- 电脑文本文档怎么写html视频,如何保存网页内容?如文字、图片和视频
- Android 开发神器系列(工具篇)之 Android 屏幕共享工具
- 斑马Revit:“BIM等级考试证书”究竟要不要考?
- Vaa3d_DIADEM metric基本介绍_SWC拓扑结构量纲
- 1x pcie 速度_usb 3.0 速度 pciex1 pci 速度 各总线的速度
- python sorted lambda_详解python中的lambda与sorted函数
- python输入直角三角形两条直角边、输出斜边长_用C++输入直角三角形的两条直角边长,调用平方根函数sqrt来求斜边的长度。...
- 清理Windows Temp目录下的cab*文件
- OSG开发笔记(二十五):OSG漫游之CS移动、碰撞检测与跳跃
- tomcat+nginx配置htpps
- 网络安全-靶机dvwa之sql注入Low到High详解(含代码分析)
- NBA表格_python告诉你关于NBA得分王中一些有趣的数据
- mysql数据库教学系统设计_MySQL-教学系统数据库设计
热门文章
- 继续,黑苹果安装,HP 2560p, HP 8470p,微星 B85I
- 深度 | ICCV研讨会:实时SLAM的未来以及深度学习与SLAM的比较(附论文和PPT)
- 论文要求MATLAB坐标轴中的x和y轴标签中文用宋体,英文用其它字体,该如何解决?
- 甲骨文输掉诉讼官司 或失去美国国防部价值100亿美元云计算合同
- 34岁!100天!学会Java编程(Day12)——知识点串连
- microsoft office word 遇到问题需要关闭, 这是第二次遇到这个问题了
- WordPress站点基于IP无需账号密码登录的插件IP Based Login
- Selenium ChromeDriver 截图标记指定元素的方法
- Word2003入门动画教程79:在Word中插入Excel图表
- discuz sitemap.php,discuz教程:制作门户的百度sitemap的方法