OCR技术是光学字符识别的缩写(Optical Character Recognition),是通过扫描等光学输入方式将各种票据、报刊、书籍、文稿及其它印刷品的文字转化为图像信息,再利用文字识别技术将图像信息转化为可以使用的计算机输入技术。可应用于银行票据、大量文字资料、档案卷宗、文案的录入和处理领域。(以上信息来源于百度百科OCR技术)
前几天刚好接到公司两个相关需求需求,一个是资产管理,由于信息化管理的需求,需要识别我们的物料标签;另一个是我们的会员系统,通过图片给的识别码到系统中查找是否存在相应红包、会员信息,从而避免黄牛扰乱我们的红包、会员系统,以前的做法是购买一个外部公司开发的接口(据说是1000元10万次)。基于公司的业务需求,同时也为了实践用技术解决业务上的问题的态度,把实际开发中遇到的问题记录下来,供读者们少走弯路。

一、环境准备

  1. 首先我们的操作环境是Windows操作系统(Linux系统可以通过libtesseract方式访问),我们采用的OCR识别软件是Tesseract-OCR,下载并安装Tesseract-OCR软件,安装完成之后需要配置环境变量,配置完成之后通过CMD命令行验证是否配置成功,执行tesseract -v命令查看相应版本,下面是一个CMD控制台下的识别实例。

  2. 配置中文语言包
    默认情况下Tesseract-OCR是不能识别中文的,需要加载相应的中文语言包,简体中文语言包叫chi_sim.traineddata下载下来之后需要放置到${TESSERACT_HOME}/tessdata目录下,同时把语言包目录路径配置到环境变量当中,新增变量名称为“TESSDATA_PREFIX”。

    至此前期的环境准备工作已经完成,读者可以通过CMD命令行的模式使用OCR的基本功能了,接下来是通过Python语言集成进来,毕竟手工操作的效率和扩展性不如程序化实现。

二、Python实现

  1. 安装依赖包
    接下来我们主要实现Python与Tesseract-OCR交互实现程序化图片识别功能。首先我们需要安装Python 图片依赖包,本文中Python涉及到的依赖包主要有两个,一个是PIL(Python Imaging Library),另外一个就是与Tesseract-OCR交互的依赖包pytesseract,通过pip install package_name安装相应的包。
  2. Python项目
    编写相应代码获取图片字符,首先是加载依赖包,读取图片,最终把从图片上读取出的字符写入一个文件保存起来,具体代码如下:

    最后的效果如下:

问题及解决:

  1. 读取中文字符的时候有异常输出,如下

    Python程序不能对中文进行编码,执行程序前,需要配置中文的环境,如下:

引用

  1. Tesseract-OCR项目
  2. tesseract 提升识别质量
  3. Python图像处理之图片文字识别(OCR)
  4. 用python做一个图片验证码
  5. Linux——完全安装Tesseract环境
  6. Python项目Github源代码

编程:Python实现图片识别相关推荐

  1. python编程图片大全_Python编程实现的图片识别功能示例

    本文实例讲述了Python编程实现的图片识别功能.分享给大家供大家参考,具体如下: 1. 安装PIL,官方没有WIN64位,Pillow替代 pip install Pillow-2.7.0-cp27 ...

  2. python智能图片识别系统(图片切割、图片识别、区别标识)

    目录 技术介绍 运行效果 关键代码 写在最后 技术介绍 你好! python flask图片识别系统使用到的技术有:图片背景切割.图片格式转换(pdf转png).图片模板匹配.图片区别标识. 运行效果 ...

  3. Python实现图片识别加翻译,高薪必备技能

    Python使用百度AI接口实现图片识别加翻译 python python诞生30周年 encoding:utf-8 import requests import base64 from PIL im ...

  4. python简单图片识别_用Python进行简单的图片识别(1)

    起因是这样的,我想买一个定焦镜头,但也不是必需品,可以长期观望购买.最初的想法是,写个程序,每天爬一下各大电商网站的价格,或者直接爬etao把该镜头的价格记录下来,突然有一个惊爆的低价,就发邮件通知. ...

  5. Python实现图片识别加翻译

    Python使用百度AI接口实现图片识别加翻译 python诞生30周年 # encoding:utf-8import requests import base64 from PIL import I ...

  6. Python之图片识别

    今天我们来实现用Python来进行图片的文字提取. 技术原理:通过借助ORC和Tesseract工具来实现 文字识别是ORC的一部分内容,ORC的意思是光学字符识别,通俗讲就是文字识别.Tessera ...

  7. Python批量图片识别并翻译——我用python给女朋友翻译化妆品标签

    周末福利:文末赠书活动 最近小编遇到一个生存问题,女朋友让我给她翻译英文化妆品标签.美其名曰:"程序猿每天英语开发,英文一定很好吧,来帮我翻译翻译化妆品成分","来,帮我 ...

  8. python视频图片识别算法_python利用Opencv进行人脸识别(视频流+图片)

    首先:需要在在自己本地安装opencv具体步骤可以问度娘 如果从事于开发中的话建议用第三方的人脸识别(推荐阿里) 1.视频流中进行人脸识别 # -*- coding: utf-8 -*- import ...

  9. python相似图片识别_Python+Opencv识别两张相似图片

    Python+Opencv识别两张相似图片 在网上看到python做图像识别的相关文章后,真心感觉python的功能实在太强大,因此将这些文章总结一下,建立一下自己的知识体系. 当然了,图像识别这个话 ...

  10. python 百度识图_用python做图片识别(调用百度API)

    [Python] 纯文本查看 复制代码""" 读取图片 """ def get_file_content(filePath): with o ...

最新文章

  1. #招聘# C++高级攻城师一枚
  2. 5G LAN — Overview
  3. Linux下关机、重启
  4. JSTL笔记—c标签
  5. jQuery实现星星评分功能
  6. Android(Java):jni源代码
  7. 电饼锅的样式图片价格_进口珐琅铸铁锅专场,精致小厨娘们来康康!
  8. java入职华为,通过这9个Java面试题,就可以入职华为啦
  9. Spring Security 示例教程
  10. android listview 自适应列宽_Android 开发技术周报 Issue#272
  11. 碎裂效果尝试(clip-path篇)
  12. 年轻人逃离推荐算法围城:老年版App,用着真香
  13. 代码实现WordPress 在文章内容的段落中插入广告google adsense
  14. 小程序 ---- (setData关于赋值对象属性的问题)
  15. 小学生python编程教程-python 小学生教程|怎么让一个小学生学会Python?
  16. HDU 4939 Stupid Tower Defense 简单DP
  17. 基本的LC串联和并联振荡电路分析
  18. 2022微信企业邮箱登录入口介绍,企业微信企业邮箱怎么开通注册?
  19. js返回浏览器的顶部
  20. 设计模式-合成复用原则-》面向对象设计原则

热门文章

  1. 通过Log4j生成CSV格式日志时自动插入表头处理方法
  2. 万用表的使用方法 (图解)
  3. 经典6位半HP34401A电路图
  4. 2021-01-26
  5. html表单有几部分组成,网页制作时表单由哪两部分组成
  6. 8086/8088,80286,80386的CPU寄存器
  7. Android网络框架情景分析之NetworkManagementService和Netd交互深入分析二
  8. 信号越多越好?随机相对强弱指数 vs. 相对强弱指数
  9. 计算长方体和四棱锥的表面积和体积(类的继承)python java
  10. Garbled Circuits介绍 - 2 基础知识