项目场景:

目前有许多应用会绑定银行卡,但是再绑定的时候如果是用户一个个卡号输入的话,就会使犯错误的概率大大增加,所以就体现出了我们这个app的作用,无论是什么样的银行卡都可以识别出它的卡号。


对于这个项目,我负责的主要是银行卡号的分割,以及银行卡照片的预处理。
对于图片处理的这一部分,我选择的是opencv,编程语言选择的是python,安装环境这一部分就不做太多介绍了 (百度一下教程就有,我配置环境的时候也踩到许多坑,我之前的博客有介绍),我们要先对图片进行预处理,这样可以帮助我们对银行卡号在银行卡的位置进行判断和寻找。


原银行卡照片(此银行卡照片为网上开源照片)

图片处理流程:

一、高斯模糊

银行卡照片要先进行高斯模糊对图片进行去除噪音(附简要代码)

blur = cv.GaussianBlur(img, (3, 3), 0)     # 高斯模糊

降噪后的照片


二、灰路图像和图片二值化

将进行完高斯模糊的银行卡照片进行灰路图像和图像二值化。(附简要代码)

    gray = cv.cvtColor(blur, cv.COLOR_BGR2GRAY)  # 将图像变为灰路图像ret, binary = cv.threshold(gray, 50, 255, cv.THRESH_BINARY)       # 二值化

代码实现的结果照片

灰路图像
二值化的图像

三、膨胀和腐蚀

将进行完灰路图像和图像二值化的银行卡照片进行膨胀和腐蚀(附简要代码)

    kernel = np.ones((1, 50), np.uint8)erosion = cv.erode(binary, kernel)         # 膨胀dilation = cv.dilate(erosion, kernel)      # 腐蚀

代码实现的结果照片

四、总结
通过前面的方法我们就已经可以判断银行卡上的银行卡号的位置了,接下来的部分
就是银行卡号的分割 ,把银行卡号分割成一个一个小的号码,并将其保存为照片。


银行卡号的查找位置:

从上面的方法中,我们已经可以识别出银行卡号的位置了。然后我们再将查找到的位置,用二值化图片来进行存储。(附简要代码)

def num_split(img):height, width = img.shapev = [0] * widthz = [0] * heighta = 0for x in range(0, width):for y in range(0, height):if img[y, x] == 255:continueelse:a = a + 1v[x] = aa = 0l = len(v)emptyImage = np.full((height, width), 255, dtype=np.uint8)for x in range(0, width):for y in range(0, v[x]):emptyImage[y, x] = 0

代码实现结果如图


银行卡号的分割:

从上面的方法中,我们已经可以得到了银行卡号的二值化照片了,我们就可以利用图像二值化来进行银行卡号的分割,图像二值化的意义就是利用每个卡号之间的白色来将卡号就行分割。(附简要代码)

Position = []Wstart = 0Wend = 0W_Start = 0W_End = 0v[0], v[len(v)-1] = 0, 0for j in range(len(v)):if v[j] > 0 and Wstart == 0:W_Start = jWstart = 1Wend = 0if v[j] <= 0 and Wstart == 1:W_End = jWstart = 0Wend = 1if Wend == 1:Position.append([W_Start, 0, W_End, height])Wend = 0for hx in range(h0):for wx in range(w0):temp_data.append(float(temp_img[hx, wx]))data.append(temp_data)return data

代码实现结果如图


对于过于模糊的照片:

我们可以手动进行确定银行卡号的位置,然后就行后续的操作。最开始的时候处理的图像只能是特别清晰的银行卡照片,但是后面发现银行卡的种类特别多,而且有的还特别不清晰,所以我也改进了我的代码,原因就是因为照片灰度化,对于每种照片处理的不是够精细,然后就来在队友的帮助下也寻找到了更好处理的灰度化的方式,

基于深度学习的银行卡号识别 卡号识别和分割相关推荐

  1. 基于深度学习的番茄叶部病害识别模型

    基于深度学习的番茄叶部病害识别模型 1.研究思路 为实现番茄叶病特征的自动 提取,并提高识别准确率,提出一种基于深度学习的番茄叶病识别模型.该模型基于卷积神经网络对番茄叶部病害特征进行自动提取,获得高 ...

  2. 一种基于深度学习的遥感图像分类及农田识别方法

    文章针对现有的神经网络收敛速度慢.识别准确率不高的缺点,提出了一种基于卷积神经网络的遥感图像农田分类及识别方法.该算法使用较大的卷积核,有效地提取梯度信息:设计深度为6层的卷积神经网络,提高了网络的分 ...

  3. 基于深度学习的近红外掌纹识别原型系统设计与实现

    基于深度学习的近红外掌纹识别原型系统设计与实现 一.绪论 二.深度学习知识 三.Tensorflow 四.卷积神经网络 五.掌纹识别理论 掌纹图像采集 掌纹图像预处理 掌纹特征提取 掌纹特征匹配 掌纹 ...

  4. 基于深度学习的高精度家禽猪检测识别系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度学习的高精度家禽猪检测识别系统可用于日常生活中或野外来检测与定位家禽猪目标,利用深度学习算法可实现图片.视频.摄像头等方式的家禽猪目标检测识别,另外支持结果可视化与图片或视频检测结果的导 ...

  5. 基于深度学习的高精度牙齿健康检测识别系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度学习的高精度牙齿健康检测识别系统可用于日常生活中检测牙齿健康状况,利用深度学习算法可实现图片.视频.摄像头等方式的牙齿目标检测识别,另外支持结果可视化与图片或视频检测结果的导出.本系统采 ...

  6. 基于深度学习的银行卡号识别项目(完整代码+数据可直接运行)

    实现工具及平台 Windows 10 x64 Python 3.6(Anaconda) Tensorflow-gpu 1.8.0 Keras 2.1.6 NVIDIA GeForce GTX 1050 ...

  7. 基于深度学习的端到端人脸识别技术:全面调研

    44页,共计371篇参考文献.本文全面介绍了端到端深度学习人脸识别技术,包括人脸检测,人脸预处理和人脸表征等方向,详细介绍了最新的算法设计,评估指标,数据集,性能比较等. The Elements o ...

  8. 点云的无序性_基于深度学习的激光雷达点云物体识别方法总结

    0. 前言: 激光雷达作为自动驾驶不可或缺的传感器,随着价格不断下降,各种基于深度学习的模型也层出不穷(坐等马斯克打脸); 激光雷达物体识别的任务: 输入: 激光点云(x, y, z, intensi ...

  9. 基于深度学习的Action Recognition(行为识别)【二】

    本文发表在: 知乎专栏 看了近一个月的论文,对行为识别领域中目前主流的基于深度学习的方法算是有了基本的认识.但今天只做总结,关于每一篇论文的详细理解,之后有时间补上.也欢迎指正交流.

  10. 基于深度学习的海洋生物声音信号智能识别技术与实现

    基于深度学习的水声信号智能识别技术与实现 基于开源数据集,讲声音做FFT变换转换为频谱图,设计卷积神经网络对声音进行分类识别. 这里图片的处理对计算机环境要求比较高. 1.研究背景与意义 2.声音特征 ...

最新文章

  1. 读书:有趣 -- 酒鬼与圣徒
  2. Spring Boot 2.x整合Websocket(基于Spring Boot 2.x 前后端分离 iview admin vue 集成activiti工作流...
  3. Xamarin图表开发基础教程(4)OxyPlot框架
  4. inline-block 和 float 的区别
  5. AJAX与SQL Server(一)
  6. 牛客练习赛70 重新排列
  7. 昆仑万维C++工程师笔试
  8. 搜索python题目的软件_Python编程快速上手——正则表达式查找功能案例分析
  9. GUI中axes使用subplot时的清空及axes大小的固定的解决方法
  10. oracle java耗cpu_ORACLE高手请看过来,CPU使用率100% (100分)
  11. 语音识别技术_语音识别原理_语音识别技术原理_企业服务汇
  12. 酷客多小程序携手Richly network Pte Led正式进军新加坡市场
  13. 关于网页内容加速黑科技的趣谈
  14. Python爬虫从入门到放弃(二十四)之 Scrapy登录知乎
  15. MongoDB学习笔记(查询)
  16. 安卓,加密drawable图像资源、从类文件生成drawable
  17. 【广州数据报表中心怎么样】什么样的大数据
  18. Espressif 玩转 PWM
  19. STM32流水灯程序---2种方式
  20. 罗森伯格电子配线系统问答

热门文章

  1. linux打包压缩命令
  2. File is included in 4 contexts
  3. 如何生成白底一寸照?怎么制作白底证件照?
  4. Python数学建模系列(九):回归
  5. 四轴锁付程序,三菱FX5U发脉冲控制主轴,与好伙伴伺服电批进行MODBUS485通讯
  6. hibernate的注解属性mappedBy详解
  7. 谷歌自动启动flash
  8. HashMap底层原理与扩容机制
  9. GET 和 POST 的区别
  10. MySQL笔记:第17章_其他数据库日志