记得以前有个广告词叫:“学好数理化,走遍天下都不怕”,感觉应该再加一句:“带上身份证”,本文我们看一下如何使用 Python 提取身份证信息。

实现方式

实现方式大致可以分为两种:

  • 自己造轮子,如:使用 OpenCV 等自己编码实现,该方式所有功能都需自己来实现,比较耗时耗力,优点是更灵活一些
  • 使用现成的轮子,如:百度云,平台已经实现好了核心功能,并对外提供了 API 接口,我们直接调用接口即可,该方式省时省力,但灵活性可能差一些

实现过程

因为我们要实现的功能也比较简单,这里就用第二种方式来演示一下,下面简单看一下实现过程。

SDK 安装

百度云 SDK 对多种语言提供了支持,这里我们安装 Python 版的 SDK,使用 pip install baidu-aip 命令即可,SDK 目录结构如下:

├── README.md
├── aip                   // SDK 目录
│   ├── __init__.py       // 导出类
│   ├── base.py           // aip 基类
│   ├── http.py           // http 请求
│   └── ocr.py //OCR
└── setup.py              // setuptools 安装

创建应用

SDK 安装好后,我们接着需要创建应用了,这里需要一个百度账号或百度云账号,如果没有的话自己注册一个即可,登录及注册地址为:https://login.bce.baidu.com/?redirect=http%3A%2F%2Fcloud.baidu.com%2Fcampaign%2Fcampus-2018%2Findex.html,具体过程与车牌识别基本类似,如果不清楚的话,可以看一下车牌识别这篇文章。

具体实现

我们先找一张身份证图片,如图所示:

接着看一下代码实现,首先创建 AipOcr,AipOcr 是 OCR 的 Python SDK 客户端,代码实现如下:

# 自己的 APPID AK SK
APP_ID = '自己的 App ID'
API_KEY = '自己的 Api Key'
SECRET_KEY = '自己的 Secret Key'client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

上面三个参数也可以参照车牌识别中的介绍。

信息的提取有普通和高精度两种模式,普通模式代码实现如下:

# 打开并读取文件内容
fp = open("card.jpg", "rb").read()
res = client.basicGeneral(fp) # 普通
# 遍历结果
for tex in res["words_result"]:row = tex["words"]print(row)

输出结果如下:

姓名韦小宝
性别男民族汉
出生1654年12月20日
住址北京市东城区景山前街4号
紫禁城敬事房
公民身份证号码112441654122日2438

再来试一下高精度模式,代码实现如下:

# 打开并读取文件内容
fp = open("card.jpg", "rb").read()
res = client.basicAccurate(fp) # 高精度
# 遍历结果
for tex in res["words_result"]:row = tex["words"]print(row)

输出结果如下:

姓名韦小宝
性别男民族汉
出生1654年12月20日
住址北京市东城区景山前街4号
紫禁城敬事房
公民身份证号码11204416541220243X

通过输入结果我们可以看到:高精度模式提取了正确的身份证号码,普通模式提取的身份证号码是有一些误差的。

总结

本文我们使用 Python 结合百度云接口几行代码就提取了身份证信息,其实除了身份证信息也可以提取其他卡片信息,比如银行卡信息等,有兴趣的可以试一下。

在这里还是要推荐下我自己建的Python开发学习群:1156465813,群里都是学Python开发的,如果你想学或者正在学习Python ,欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2020最新的Python进阶资料和高级开发教程,欢迎进阶中和进想深入Python的小伙伴!

十行 Python 代码就提取了韦小宝的身份证信息相关推荐

  1. python代码去马赛克_十行python代码教你如何去除万恶的,如s一样的马赛克

    世界上有一种东西,叫作马赛克,不知道困扰了多少痴男怨女.小编新get到一个技能,忍不住拿出来秀一秀. 小编这几天的了解其实水印和马赛克的原理是一样的,都是覆盖.一般是去不了的,那么这个技术来了,请看~ ...

  2. 替换证件照背景颜色仅需十行Python代码

    本文教大家通过Python程序替换证件照背景颜色,以后更换证件照背景就不会再苦恼了. 本文教大家通过Python程序替换证件照背景颜色,以后更换证件照背景就不会再苦恼了. 思路: 先去掉原照片的背景颜 ...

  3. 十行Python代码搞定图片中的物体检测

    "Word is useless, show me the pic" -MR Lu 先看下原图: 图片表述的是一男一女在散步,后面有一辆车,现在来看下我们通过十行代码实现的效果: ...

  4. 几十行python代码构建一个前后端分离的目标检测演示网站,代码开源

    在深度学习更讲究实用和落地的今天,构建一个简单的,可以利用浏览器和后端交互的演示性 Demo 可以说非常重要且实用了.本文我们将简单的介绍如何用几十行核心代码构建一个好用的.前后端分离的Demo. 2 ...

  5. QQ能把语音转文字!为啥微信确没有?很难吗?十行Python代码就行

    QQ和微信这两款都是非常受人喜欢的聊天交友软件!可能大家平时没有留意到,也或者是大家可能很少用微信,或者很少用QQ吧!所以可能没有留意这些小细节!就是QQ上面发的语音消息是可以直接文字识别的,但是微信 ...

  6. python 语音转文字软件_十行Python代码将微信语音转文字

    QQ和微信这两款都是非常受人喜欢的聊天交友软件!可能大家平时没有留意到,也或者是大家可能很少用微信,或者很少用QQ吧!所以可能没有留意这些小细节!就是QQ上面发的语音消息是可以直接文字识别的,但是微信 ...

  7. 十行 Python 代码实现酷炫功能

    一.生成二维码 二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,而生成一个二维码也非常简单,在Python中我们可 ...

  8. java 身份证地址提取籍贯_获取身份证信息中的籍贯、出生及性别信息

    前言:之前在项目开发中,经常需要用户录入身份证信息,同时还要提供籍贯等信息.那么,如何从身份证号码中解析出籍贯等信息,就是本篇博客索要解决的. 其实,身份证号码前6位就是用户的籍贯编码,直接解析该6位 ...

  9. 成为表情包大帝,仅需几十行python代码,简单易学

    喜欢编程,热爱分享,希望能结交更多志同道合的朋友,一起在学习Python的道路上走得更远!有不懂的问题可以私聊我哦! gif动图制作 python制作gif动图可以用imageio库简单实现.做gif ...

  10. python图片转字符_二十行python代码实现图片转字符

    要达到的效果如下图所示 或者这样 源码如下: from PIL import Image ascii_char =list("/\|()1{}$@B%8&WM#ZO0QLCJUYX* ...

最新文章

  1. ASP.NET管理状态的十种途径
  2. 上传文件返回数据提示下载
  3. jemeter python接口自动化测试平台_ant+jmeter+Jenkins接口自动化测试实战(1)
  4. 在Visual Studio中使用任何C++编译器
  5. 构造函数必须没有代码
  6. 计算机网路【2】数据链路层
  7. 将信息系学生的计算机文化学,计算机等级考试(国家)-关系数据库操作语言sql(四)...
  8. 信息学奥赛一本通 1008:计算(a+b)/c的值 | OpenJudge NOI 1.3 03
  9. 宝塔 + 百度BCC + centos + vue + 搭建nginx服务器
  10. 程序员遇到问题的解决之道
  11. epoch、 iteration和batchsize的区别
  12. OpenCV和java做人脸识别
  13. 做了三年Java,java简历包装项目经验
  14. 系统集成项目管理工程师07《项目质量管理》
  15. Qt自定义标题栏可拖动修改窗口大小
  16. 关于Windows的window
  17. hibernate学习之四——Query和Criteria接口
  18. 完了!Python黄了! 80%的程序员:痛快!你怎么看?
  19. Bom中的实体物料与用量
  20. oracle saiku_多维数据分析引擎Saiku的安装使用

热门文章

  1. ssm搭建整合,这一篇你直接拷走就是一个搭好的框架,前后端可分离,可不分离
  2. html(5)知识点囊括
  3. Vue知识点囊括清单
  4. react-redux中Connect方法
  5. CSS3简单练习 魔方制作
  6. 一个简单的订单生成器 ---- 20160920
  7. 在mysql中创建用户并授权
  8. 2020-12-09 blastp参数学习
  9. Frontend Framework
  10. java 构造器 血药主题_Day08-面向对象编程,Java构造器