当前位置: 首页 > news >正文

python ocr高精度识别_OCR识别-python版(一)

需求:识别图片中的文字信息

环境:windows系统

开发语言:python

使用工具类:1.pyocr

2.PIL

3.tesseract-ocr

步骤:

1.pyocr

网络通直接使用命令:

pip install pyocr

网络不通,转至https://pypi.python.org/pypi/pyocr/0.4.1下载安装

2.安装pil

网络通直接使用命令:

pip install PIL

网络不通,转至http://www.pythonware.com/products/pil/index.htm下载安装

3.安装tesseract-ocr

exe文件,下载后直接安装,建议默认安装过程中的选项,安装目录默认C:\Program Files (x86)\Tesseract-OCR,(尝试安装D盘后,在cmd中调用可以,但是在python中会出现找不到tesseract的配置目录的问题,后续再研究)

代码:

#coding=utf-8

__author__ = 'syq'

#https://github.com/tesseract-ocr

importsys

reload(sys)

sys.setdefaultencoding('utf-8')importos

os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'

try:from pyocr importpyocrfrom PIL importImageexceptImportError:print '模块导入错误,请使用pip安装,pytesseract依赖以下库:'

print 'http://www.lfd.uci.edu/~gohlke/pythonlibs/#pil'

print 'http://code.google.com/p/tesseract-ocr/'

raiseSystemExit

tools=pyocr.get_available_tools()[:]if len(tools) ==0:print("No OCR tool found")

sys.exit(1)print("Using '%s'" %(tools[0].get_name()))print tools[0].image_to_string(Image.open('D:\\123.png'),lang='eng')print tools[0].image_to_string(Image.open('D:\\3434.png'),lang='chi_sim')#print tools[0].image_to_string(Image.open('D:\\3535.png'),lang='chi_sim')

文件内容:

123.png

783328-20160505162146794-19417692.png

3434.png

783328-20160505162208247-522669603.png

输出:

Using 'Tesseract (sh)'

7364

求彰只另UoCR第 1代

可以看到,在使用英文字库(eng)情况下,对数字识别挺准确的,但是在使用中文简体字库(chi_sim)情况下,对中文文字识别结果有点不尽人意。

在整个过程中可能会遇到的问题

1.如果控制台直接输出:“No OCR tool found”,说明未成功安装tesseract-ocr,debug查看get_available_tools,在该方法中回去查看本机已经安装有的ocr识别库,有三种,

libtesseract,

tesseract,

cuneiform,

本文使用的是第二种tesseract,

tesseract具体安装请转至。

2.在识别带中文的图片,会遇到报“allow_blob_division”的错误,

需要下载tesseract-ocr的中文库,地址:https://codeload.github.com/tesseract-ocr/tessdata/zip/master,里面包含tesseract多有的文字库,chi_sim.traineddata为简体中文库,将该文件放至C:\Program Files (x86)\Tesseract-OCR\tessdata目录下接下来的具体处理方法,转至:http://www.cnblogs.com/syqlp/p/5460971.html

相关文章:

  • python 全部缩进一行_一步一步学Python3(小学生也适用) 第三篇: Python基本规范
  • win10添加python环境变量_Windows10下安装python(配置环境变量)
  • python运维开发前景_运维开发前景怎么样,怎么去学习运维开发?
  • .sh文件怎么运行_创建优化的Go镜像文件以及踩过的坑
  • css 动态rem_我们为什么不使用 CSS 框架
  • 电脑控制苹果手机_用电脑控制手机?
  • close wait 过多原因_springboot tomcat 挂掉,假死无响应原因总结和解决方案
  • python tkinter_tkinter转盘抽奖代码、调整和逐步优化的python分析
  • path manipulation怎么解决_TensorFlow Object Detection API遇到的问题及解决
  • python安装后怎样配解释器_pycharm 安装后如何设置与更换解释器
  • cloud压缩怎么彻底删除_怎么彻底删除mysql服务?
  • 西门子et200 分布式i/o_你真的了解西门子Profinet吗?从RT切换到IRT出问题
  • python简述题_python考核试题及答案
  • python 项目示例_Python project.Project方法代码示例
  • python12_python12_异常处理
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • Brief introduction of how to 'Call, Apply and Bind'
  • C++11: atomic 头文件
  • Druid 在有赞的实践
  • Effective Java 笔记(一)
  • HomeBrew常规使用教程
  • HTTP中GET与POST的区别 99%的错误认识
  • java 多线程基础, 我觉得还是有必要看看的
  • React组件设计模式(一)
  • RxJS: 简单入门
  • 对象引论
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 模型微调
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 写代码的正确姿势
  • 用 Swift 编写面向协议的视图
  • 做一名精致的JavaScripter 01:JavaScript简介
  • gunicorn工作原理
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • ​Spring Boot 分片上传文件
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • #etcd#安装时出错
  • #if和#ifdef区别
  • (13):Silverlight 2 数据与通信之WebRequest
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (动态规划)5. 最长回文子串 java解决
  • (论文阅读30/100)Convolutional Pose Machines
  • (七)c52学习之旅-中断
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (转) ns2/nam与nam实现相关的文件
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • .net mvc actionresult 返回字符串_.NET架构师知识普及
  • .net 开发怎么实现前后端分离_前后端分离:分离式开发和一体式发布
  • .NET 药厂业务系统 CPU爆高分析
  • .NET的数据绑定
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter