• 提取身份证信息-阶段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 ,供读者参考。关键代码后有相关注释,方便阅读。

    结语

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

  • 相关阅读:
    ural 1723 Sandro's Book
    ural 1104 Don’t Ask Woman about Her Age
    ural 1052 Rabbit Hunt
    ural 1837 Isenbaev's Number
    ural 1348 Goat in the Garden 2
    ural 1207 Median on the Plane
    ural 1640 Circle of Winter
    段错误 核心已转储尝试解决
    显卡相关命令介绍【转载】
    Linux的top命令学习【转载】
  • 原文地址:https://www.cnblogs.com/studylyn/p/9505573.html
Copyright © 2020-2023  润新知