• 提取身份证信息-阶段1 图像处理


    目标

    为了实现pc端,提取一张拍摄的身份证照片中人物的信息,照片背景单一且为浅色,初步使用图像处理知识进行处理。

    由浅入深,第一步,使用简单的图片,并且有针对性的对某幅图片进行针对性处理,得到大部分黑色字体的位置框,为后期利用tesseract技术进行文字识别提供区域位置提取。

    示例效果

    效果讨论

    从效果图可以看出3个问题:

    1.不是所有的黑色字体都识别了出来 -->解决:蓝色框相近的合并,并且取边界的最大覆盖面,只要两端有字识别出来,中间就没有问题,也正好适用于tesseract进行连串识别 。

    2.人物图像上也有蓝色识别框 -->解决:因为是针对身份证的识别,后期可以进行有针对性的校调。

    3.身份证摆放不正 -->解决:一开始考虑只要能识别出黑色就好了,而且tesseract一连串识别最佳并且避免了很多单个框识别的调整问题,所以下一阶段要加上倾斜校正。

    识别步骤

    1.提取rgb图像的r通道得到灰度图(通过对比了rgb联合灰度、r通道、g通道和b通道图像得出的最合适结果)。

    2.图像二值化并且反色,使得背景为黑前景为白(findCountours作用对象为白色),针对这幅图选择阈值90,代码中设置了调节条,可以查看不同阈值的处理效果。

    3.opencv中findCountours和boundingRect函数进行边框提取,并进行大小过滤,这里选择面积在(30,800)内的矩形框。

    4.将边框画在原图,进行显示(经过初步测试,和二值化后毛糙的图片相比,tesseract对原图的提取更加准确)。

    项目代码

    完整的 阶段一 vs2015 项目代码放在github上: https://github.com/CaptainLYN/IDCardRecognization-Stage-1 ,供读者参考。关键代码后有相关注释,方便阅读。

    结语

    非常欢迎读者们的指正和有关讨论,直接留言即可。

  • 相关阅读:
    全选、全不选、反选
    IE Tester 怎样使用firebug 调试工具?
    策略模式
    模板方法模式
    迭代器模式——android中使用
    android 实现圆形波纹动画
    android 窗口的使用
    AlertDialog 基本使用
    国外android 网站
    ViewDragHelper 任意拖动
  • 原文地址:https://www.cnblogs.com/studylyn/p/9505573.html
Copyright © 2020-2023  润新知