OpenCV中文网站

 找回密码
 立即注册
搜索
热搜: 安装 配置
查看: 32850|回复: 40

如何将银行卡中的数字提取出来

[复制链接]
发表于 2013-12-16 18:50:06 | 显示全部楼层 |阅读模式
或者说如何二值化,可以得到卡中的数字cvthreshold和cvadaptivethreshold只对图片背景不复杂的图像效果较好,如果图片背景复杂一点二值化效果就不好了,opencv中有没有好的方法可以得到这些卡号比较清晰的二值化图像?
1.jpg
10.jpg
回复

使用道具 举报

发表于 2013-12-19 04:22:44 | 显示全部楼层

模板匹配

本帖最后由 anqing 于 2013-12-19 04:24 编辑

可以用模板匹配,先找到银联标志,再根据其找到银行号码区域,这给后期的识别省了功夫,而且此时的背景也没那么多。

QQ拼音截图未命名.bmp

回复 支持 2 反对 0

使用道具 举报

发表于 2013-12-16 20:35:00 | 显示全部楼层
不同的卡肯定要用不同的方式来处理
你上面那张我简单处理了下,分离出数字部分,后面就是文字识别了
2222.jpg
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-16 21:16:36 | 显示全部楼层
已婚奥特曼 发表于 2013-12-16 20:35
不同的卡肯定要用不同的方式来处理
你上面那张我简单处理了下,分离出数字部分,后面就是文字识别了 ...

你是怎么处理的?有没有代码可供参考?
回复 支持 反对

使用道具 举报

发表于 2013-12-16 22:08:34 | 显示全部楼层
且听风吟 发表于 2013-12-16 21:16
你是怎么处理的?有没有代码可供参考?

无非就是二值化 去噪这些手段,opencv都有封装
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-16 22:21:41 | 显示全部楼层
已婚奥特曼 发表于 2013-12-16 22:08
无非就是二值化 去噪这些手段,opencv都有封装

是不是cvThreshold,这种方法对应多种卡不太适合啊?如何分别出各种卡,就是这种我不太清楚? 可以根据颜色分别?
回复 支持 反对

使用道具 举报

发表于 2013-12-16 22:26:23 | 显示全部楼层
且听风吟 发表于 2013-12-16 22:21
是不是cvThreshold,这种方法对应多种卡不太适合啊?如何分别出各种卡,就是这种我不太清楚? 可以根据颜 ...

这里面涉及到一些图像处理的原理,需要自己理解,不然你也做不下去
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-16 22:31:50 | 显示全部楼层
已婚奥特曼 发表于 2013-12-16 22:26
这里面涉及到一些图像处理的原理,需要自己理解,不然你也做不下去

我现在的步骤就是先转换为灰度图,然后采用cvadaptivethreshold进行二值化,通过图像锐化和去噪实现增强,但是如果图片背景复杂的话自适应二值化就会把背景的一些信息也保留下来了,图片简单的话还是能得到比较理想的二值化图片,现在就是不知道该怎么做了,比如第二张图片,采用cvadaptivethreshold会把背景的“商”字给保留下来,但如果采用cvThreshold这种固定阀值来区分的话,不是每张都能用这种方法,所以想问下有你没有啥好的方式可以区分卡的类别?
回复 支持 反对

使用道具 举报

发表于 2013-12-16 23:18:53 | 显示全部楼层
图像处理这玩意,很难说设定一个固定的值就能解决全部问题
可以在程序里写一些程序自动调节的部分。同时也可以将需要识别的东西分段进行识别,最后将结果合并输出
440.jpg
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-16 23:36:27 | 显示全部楼层
已婚奥特曼 发表于 2013-12-16 23:18
图像处理这玩意,很难说设定一个固定的值就能解决全部问题
可以在程序里写一些程序自动调节的部分。同时也 ...

非常感谢你提出的意见!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|OpenCV中文网站

GMT+8, 2024-7-22 21:51 , Processed in 0.011335 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表