身份证识别

一、tesseract-ocr简介

OCR(Optical Character Recognition):光学字符识别,是指对图片文件中的文字进行分析识别,获取的过程。
Tesseract的OCR引擎最先由HP实验室于1985年开始研发,至1995年时已经成为OCR业内最准确的三款识别引擎之一。然而,HP不久便决定放弃OCR业务,Tesseract也从此尘封。
数年以后,HP意识到,与其将Tesseract束之高阁,不如贡献给开源软件业,让其重焕新生--2005年,Tesseract由美国内华达州信息技术研究所获得,并求诸于Google对Tesseract进行改进、消除Bug、优化工作。
下载地址:http://www.softpedia.com/get/Programming/Other-Programming-Files/Tesseract-OCR.shtml

二、身份证特征

长:856mm
宽:540mm
厚:1mm
各个区域定点对应的坐标及比例如下(以左上角为原点):(单位:mm,W:宽,H:高)

① (32,11.5) W:0.374 H:0.213
② (42,18) W:0.491 H:0.333
③ (51,24.3) W:0.596 H:0.45
④ (51,38) W:0.619 H:0.704
⑤ (78,54) W:0.911 H:0.704

三、识别原理及流程

  1. 识别流程:
    ① 提取原图中身份证所在的四个角点,进行仿射变换矫正。
    ② 将矫正后的图像进行灰度化、高斯滤波以及自适应二值化等去噪处理。
    ③ 获取图像的尺寸,计算各个信息区域矩形的坐标,并将目标区域裁剪出 来保存。
    ④ 向tesseract-ocr命令行传送保存图片路径、识别结果路径以及识别语言等参数。
    ⑤ 获取识别结果。
  2. tesseract-ocr用法:
    tesseract 图片路径 输出文件 -l “chi_sim”;
    图片路径:要识别的图片路径。
    输出文件:包含识别结果的txt文件(不需要写.txt)
    “chi_sim”:设置识别语言为中文。

四:识别效果

(图片来自网络)

【C#】基于Opencv/Emgucv的身份证识别相关推荐

  1. 数字识别java开源_Java基于opencv实现图像数字识别(三)—灰度化和二值化

    Java基于opencv实现图像数字识别(三)-灰度化和二值化 一.灰度化 灰度化:在RGB模型中,如果R=G=B时,则彩色表示灰度颜色,其中R=G=B的值叫灰度值:因此,灰度图像每个像素点只需一个字 ...

  2. Java基于opencv实现图像数字识别(一),java开发面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  3. java图片降噪_Java基于opencv实现图像数字识别(四)—图像降噪

    Java基于opencv实现图像数字识别(四)-图像降噪 我们每一步的工作都是基于前一步的,我们先把我们前面的几个函数封装成一个工具类,以后我们所有的函数都基于这个工具类 这个工具类呢,就一个成员变量 ...

  4. Python基于OpenCV的人脸表情识别系统[源码&部署教程]

    1.项目背景 人脸表情识别是模式识别中一个非常重要却十分复杂的课题.首先对计算机人脸表情识别技术的研究背景及发展历程作了简单回顾.然后对近期人脸表情识别的方法进行了分类综述.通过对各种识别方法的分析与 ...

  5. 基于 OpenCV + Python 的人脸识别上课签到系统

    目录 前言 安装第三方库 第一步:采集人脸图像 (1)修改姓名学号 (2)运行capture_face.py (3)采集人脸图像 (4)查看采集到的人脸图像 第二步:训练模型 第三步:识别签到 (1) ...

  6. 基于OpenCV自带分类器识别人脸

    基于OpenCV自带分类器识别人脸 在VS2019下要安装适用于桌面的VC++ 2015(2017) v14 00(v14)工具集. 访问网站:https://visualstudio.microso ...

  7. 【优秀课设】基于OpenCV的Python人脸识别、检测、框选(遍历目录下所有照片依次识别 视频随时标注)

    基于OpenCV的Python人脸识别.检测.框选 (遍历目录下所有照片依次识别 视频随时标注) 移步: https://blog.csdn.net/weixin_53403301/article/d ...

  8. 【毕业设计/课程设计】基于opencv的高精度人脸识别考勤系统设计与实现

    文章目录 0 项目说明 1 需求分析 2 总体设计 3 详细设计 4 程序运行结果测试与分析 5 实验心得 6 项目源码 0 项目说明 基于opencv的高精度人脸识别考勤系统设计与实现 提示:适合用 ...

  9. nao基于opencv的红球识别

    nao基于opencv的红球识别(python版) 由于nao的官方api的红球识别成功率不是很高,于是我在网上找了很多资料参考,对接nao的摄像机识别红球.首先有几个库是必须的,如 naoqi,op ...

  10. Java基于opencv实现图像数字识别(一)

    Java基于opencv实现图像数字识别(一) 最近分到了一个任务,要做数字识别,我分配到的任务是把数字一个个的分开:当时一脸懵逼,直接百度java如何分割图片中的数字,然后就百度到了用Buffere ...

最新文章

  1. 1命名规则 sentinel_Spring Cloud Alibaba 整合 Sentinel 流控
  2. 2012关于钱的Tips
  3. .NET基础示例系列之六:委托及事件
  4. Win7命令行局域网发消息图解
  5. python制作猜拳游戏代码_python实现猜拳游戏项目
  6. 安徽理工学校计算机,安徽理工学校专业设置之计算机动漫与游戏制作专业简介...
  7. 组播穿越MPLS ***+SSM
  8. python提取图片文字视频教学_用Python提取视频中的图片
  9. 史上最简SLAM零基础解读(4) - 单应性Homography →公式推导与细节理解
  10. 低代码开发之开源数据可视化分析平台datagear
  11. 用计算机画图教案评价,电脑画图教案
  12. reflector 插件_Reflector Plus Plus-插件,IronPython和其他Peli Goodness
  13. 怎么禁止恢复微信聊天记录?学会这几招以备不时之需
  14. android屏蔽返回键和Home键
  15. mac linux 笔记
  16. 堆排序(JAVA版)
  17. 使用NCBI数据库查询并使用BLAST比对新冠病毒及九种变种的核酸序列
  18. 4 年阿里前端,2 年 CTO,一个程序员六年的奋斗史
  19. 哪些公司用c语言开发工具,哪些IDE和工具可用于C语言开发?
  20. Android杂谈--ubuntu系统下adb连接小米2

热门文章

  1. 电子招投标——电子投标书制作教程
  2. 电脑鼠标右键菜单太多了怎么办?Windows右键菜单设置删除方法介绍
  3. maker mv rpg 源码_rpgmakermv插件
  4. mybatis批量操作(批量查询,批量插入,批量更新)
  5. html5转ipk,OpenWrt更新ipk教程
  6. 8uftp更改上传的网页内容
  7. 详解AC97和HD声卡前置音频接口的连接跳线
  8. Android窗口被隐藏了怎么办,Android studio中IDE窗口怎么显示或者隐藏?
  9. 机房建设整体设计方案
  10. 使用Java驱动ACR122U对IC卡进行读写