Android OpenCV + tess-two 实现银行卡识别:本地图片识别

375 阅读1分钟

目录

image.png

效果展示

bankcard.gif

实现步骤

1.对图像二值化处理

二值化处理后方便我们排除多余的信息,效果如下: image.png

2.开操作连接信息

开操作也就是,先腐蚀后膨胀,详细可以参考这篇文章:morphologyEx(形态学操作) image.png

3.查找边缘

根据上一步的操作继续进行边缘查找,找出信息所在位置的边缘 image.png

4.边缘膨胀处理

对边缘进行膨胀处理,让边缘看起来更明显 image.png

5.查找轮廓

根据上一步的边缘我们查找出信息的轮廓,然后我们将轮廓的外接矩形找出来,然后通过筛选去掉不包含信息的轮廓(这里我是直接保留了轮廓外接矩形最大的一个) image.png

6.进行OCR识别

这时我们只需要对该区域进行识别即可,识别我使用的是tess-two开源库,由于只有数字,因此我使用的是 enm.traineddata 训练数据,识别完结果如下: image.png

案例源码

gitee.com/itfitness/o…