首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

opencv实现银行卡号识别

思路 大致可以分为以下几个步骤 制作数字的模板,方便后面进行比对 将银行卡的无关信息进行隐藏 提取银行卡号 第一步相对简单一些,就是在下图中把所有的数字单独提取出来 总体的过程就是将图片转换为二值图像...然后根据这些轮廓的左上角坐标来进行排序,在排序之后我们就获得了单独的数字图像,如下图 第二步就需要开始处理银行卡片上的多余信息了,以b站课程的图片为例 可以看出,卡面上有许多的多余信息,我们要做的就是尽量只留下银行卡号信息...当进行腐蚀操作之后就会变成下图 膨胀操作:就是把细的变粗,粗的更粗 上图在进行膨胀之后就变成了这样 开运算:先腐蚀在膨胀 礼帽:原图-开运算结果 现在我们就可以继续往下讲了,在银行卡图中,银行卡号明显比较细...,这样我们就可以先腐蚀,在腐蚀之后,银行卡号数字就消失了,此时我们在膨胀,除了银行卡号的其他内容又几乎回到了腐蚀前,这时再用原图减去现在的图(即礼帽),就去掉了很多的多余信息。...boundingRect(c) roi = ref[y:y + h, x:x + w] roi = cv2.resize(roi, (57, 88)) digits[i] = roi 提取银行卡号

17210
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    金蝶核算项目余额表卡号余额与天财商龙CRM卡号余额对比

    金蝶核算项目余额表卡号余额与天财尚龙CRM卡号余额对比 由于历史遗留问题,财务一直不调账,修改核算科目卡号与天财商龙CRM系统一直,只能用VBA把卡号前缀修改成两边一致。...虽然可以优化成一分钟之内实时更新对比数据,输出余额不一致卡号。但是本人不再进行使用,已经教会给同事,由同事使用,五分钟之内还是可以接受的。就不再花费时间和精力进行优化。...Attribute VB_Name = "模块1" '金蝶卡号判断 Function pd(p As String) As String If p Like "*1997*" Then pd = Right...Like "]") Then pd = Right(p, 8) Else pd = Right(p, 6) pd = "1997000000" + pd End If End Function '天财卡号判断

    1.8K20

    【干货】C++ OpenCV案例实战---卡号获取

    前言 前面我们学习了《【干货】C++ OpenCV案例实战---卡片截取(附代码)》,根据照出来的照片直接截取到卡片后,在卡片识别里面下一步我们肯定就会用到了卡号的获取 实现思路 从上一篇里面我们已经获取到卡号...当我们已经定位好卡片后,下一步我们就要获取卡号然后再进行识别了,理论上来说,我们通过上一步截取到卡片后,根据卡号在右下角开始偏移多少来获取卡号即可,如下图 ?...通过右下角我们设置多少的偏移值后,然后找到起点设定一个固定的矩形大小,截取这一块即可实现卡号的截取,但是这会有个问题,如果我们第一步截取的有问题,因为背景的原因,造成下面截取的高度增加了,按这个固定的比例来获取就会有偏差...思路呢还是通过轮廓查找,我们可以看到,当卡号截取出来后,卡片内部的结构都是固定不变的,所以我们通过内部定位再偏移找卡号要比从右下角精确的多,如下图 ?...可以看到,红框里我们把卡号直接全部截取出来了,这个截取完后就可以进行OCR等识别了,关于识别这块,后面等学会了后再来更新。 ---- -END-

    97420

    .NET Core 如何验证信用卡卡号

    我们看看如何在 .NET Core 里验证一个信用卡的卡号是否合法。 信用卡卡号组成 首先,信用卡的卡号一般为16位,也有少许14或15位的情况。...但是,任何卡号都必须满足一个行业内著名的规律:MOD10算法。...它的目的不是用于加密卡号,而是为了防止人为出错。 计算方法如下,比如对于卡号 : 6011000990139424 末尾的数字 4 叫做校验码,剩下的数字为 601100099013942。...最后把校验码也加上,46 + 4 = 50,而 50 % 10 = 0,得出结论 6011000990139424 是一个合法的信用卡卡号。...写了个轮子 基于以上的知识,我今天抽空写了个开源库,可用于校验信用卡卡号是否合法,目前还有一些遗漏的场景(比如14、15位信用卡的校验),大家可以参考。

    3.4K10

    EAST+CRNN银行卡号识别,附数据集

    卡号识别(CNN-BLSTM-CTC) 卡号定位 (EAST) 交互界面 (PyQt5) 使用方法 下载源码 下载训练好的模型 卡号识别模型放置于crnn/model(建立model文件夹),卡号定位模型放置于...AI项目体验地址 https://loveai.tech 功能介绍 卡号识别 在这里因为给定的数据集都是每一个上有四个数字(有些为空格),但是所识别的最终目标——银行卡号有不定的长度。...卡号定位 这一部分是重中之重,考虑到自己还没有能力去研究新的图像字符定位算法,就参考了许多这类算法。现在比较成功的莫过于CTPN了,其次也有Faster-RCNN,EAST,Seg-Link等等。...目前自动定位失败主要集中在卡号和卡片背景颜色相近的情况,例如都偏暗,或者都偏亮。可以在定位之前,给测试数据加上若干预处理操作,如提高亮度,增加对比度等。 ?

    5.1K50

    .NET Core 如何生成信用卡卡号

    导语 上个月我写了《.NET Core 如何验证信用卡卡号》,不少朋友表示挺有兴趣。在金融科技行业的实际工作中,通常还需要生成信用卡卡号用来测试,今天我就来教大家如何生成信用卡卡号。...对于信用卡卡号,此处的 char 一定是代表数字的字符,不可能是其他英文字符或符号,因此可以通过 ASCII 运算来进行高效转换。...生成卡号 上回理解了 Luhn 算法之后,我们不难发现,验证卡号的精髓无非在于最后的校验位(Check Digit)。...因此对于我们自己随机生成的卡号,也只要计算除了校验位以外的SUM,然后乘以9,再取尾数即可。...,一般会给定BIN,因此我的函数设计为接受BIN前缀、卡号位数,生成符合 Luhn 的随机卡号

    1.4K30

    工人必须掌握的Linux命令

    作为一个Linux运维人员,主要就是对Linux服务器的性能做一些优化,本篇博文仅仅介绍如何性能检测常用的指令!...” io(现在的Linux版本块的大小为1kb) bi: 每秒读取的块数; bo: 每秒写入的块数; “ 注意:随机磁盘读写的时候,这2个值越大(如超出1024k),能看到CPU在IO等待的值也会越大。...[root@localhost ~]# pidstat 1 Linux 3.10.0-862.el7.x86_64 (localhost.localdomain) 2020年03月09日 _x86_...每秒接收的压缩包的数量; txcmp/s ,每秒发送的压缩包的数量; rxmcst/s,每秒接收的组数据包数量; [root@localhost ~]# sar -n TCP,ETCP 1 TCP, 报告关于TCPv4络流量的统计信息...; ETCP, 报告有关TCPv4络错误的统计信息; Linux 3.10.0-862.el7.x86_64 (localhost.localdomain) 2020年03月09日 _x86_64

    98600

    linux局域传输文件,局域传输文件详解

    局域传输文件详解(转) 相信很多朋友都有过这样的经历,在办公室需要通过局域传输文件。如果顺利自然不必说了,但有时难免也会遇到“不测”,尤其是直接移动文件,万一失败损失惨重,虽然几率不大但毕竟存在。...大家知道,本身的复制功能是不能实现断点续传的,也就是说如果在局域中复制文件一旦失败,原先复制的文件就要重新复制,这种情况相信大家也曾有过体会,难道在局域中复制文件还不如在互联网上下载文件那么可靠吗?...以上架设的FTP服务器,局域中的其他用户也能通过它来访问共享文件夹,换言之局域中的其他用户也能用到续传文件的功能。...现在局域中就只有你可以用FTP服务器来访问共享文件夹,而其他用户就不能通过你的FTP服务器来访问共享资源了。...除了在局域中复制文件时可以继点续传外,在单机中复制文件也同样可以实现文件的续传,操作方法同上。

    5.2K20

    CV学习笔记(二十二):卡号格式化匹配

    在后续完成了银行卡的识别之后,现在可以进行卡号核验和格式化的工作了,这些工作虽然没有之前的那么复杂,但是还是比较繁琐的。...一:卡号检测 来判断银行卡(储蓄卡,信用卡)的卡号的合法性我们用到了Luhn算法 算法流程如下: 1. 从右到左给卡号字符串编号,最右边第一位是1,最右边第二位是2,最右边第三位是3…. 2....checksum % 10 def is_luhn_valid(card_number): return luhn_checksum(card_number) == 0 二:BIN码校验 银行卡号一般是...只需要将合法的卡号前6位切片出来进行查询就好了。...现在我的访问时间是3-6s,视网络情况不等,仍有很多地方需要优化,比如模型载入,代码耦合,特殊情况下的识别准确率等等,以及一些功能上的缺失,比如卡号有效期的识别等,这些地方仍需要不断地改进。 ?

    1K10

    Linux Epoll 一打尽

    前言 epoll同样是linux上的IO多路复用的一种实现,内核在实现时使用的数据结构相比select要复杂,但原理上并不复杂,我们力求在下面的描述里抽出主干,理清思路。...epoll也利用了上文中介绍过的Linux中的重要数据结构 wait queue, 有了上面select的基础,其实epoll就没那么复杂了。...ws; /* The user that created the eventpoll descriptor */ struct user_struct *user; // linux...主要函数 epoll_create 创建一个epoll的实例,Linux里一切皆文件,这里也不例外,返回一个表示当前epoll实例的文件描述符,后续的epoll相关操作,都需要传入这个文件描述符。...file_can_poll(tf.file)) goto error_tgt_fput; /* Linux提供了autosleep的电源管理功能 如果当前系统支持

    1.7K10
    领券