array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 Win10环境下python调用Tesseract-OCR进行图片文字识别 - 爱码网

@Win10环境下python调用Tesseract-OCR进行图片文字识别

个人在网上没有找到一个适用于纯小白的一个傻瓜式教程,所以在此写一个精细到每个步骤的小教程。本文仅包含最基础的识别功能(由于篇幅问题本文挂了一些链接,既方便零基础小白学习操作,也方便有基础的同学节省阅读时间)

1、下载安装python、Pycharm

建议大家安装anaconda。我安装的是python 3.6的anaconda,因为不知道什么原因安装3.7的会失败。大家可以在这里下载:我之后会上传
大家有兴趣也可以试试官网下载的anaconda最新版本:https://www.anaconda.com/distribution/
anaconda的安装请参阅其他博文,这里给大家推荐一篇:Anaconda详细安装使用教程
接着是python的编辑器。大家可以使用anaconda自带的Spyder,可以使用VS code,而我比较习惯使用pycharm,附上官网下载链接:https://www.jetbrains.com/pycharm/download/#section=windows
我推荐新手下载community版本就可以,如果有需要可以去下载professional的,这个根据自己需要。如何配置pycharm请参阅:PyCharm安装与配置
大家安装并配置好后可以写一个helloworld试一试啦!

2、Tesseract-OCR下载与配置

首先要先下载Windows环境的Tesseract OCR安装包:http://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-setup-4.00.00dev.exe
下载好之后双击就开始安装了,安装过程中可以自定义安装路径,我的安装路径:D:/Tesseract-OCR

Win10环境下python调用Tesseract-OCR进行图片文字识别
Win10环境下python调用Tesseract-OCR进行图片文字识别
Win10环境下python调用Tesseract-OCR进行图片文字识别
Win10环境下python调用Tesseract-OCR进行图片文字识别Win10环境下python调用Tesseract-OCR进行图片文字识别
Win10环境下python调用Tesseract-OCR进行图片文字识别
最后点击install就可以了,然后会问你要哪些英文以外的语言包,可以根据自己的需要来选择要安装的语言包。安装好之后需要配置系统的环境变量。
1)打开文件资源管理器,在左侧“此电脑”右键单击,点属性
Win10环境下python调用Tesseract-OCR进行图片文字识别
2)点击左侧“高级系统设置”,得到如下,点击红框的“环境变量”

Win10环境下python调用Tesseract-OCR进行图片文字识别
3)由步骤2)得到如下,可以看到上方的用户变量和下方的系统变量。

Win10环境下python调用Tesseract-OCR进行图片文字识别

选中用户变量的Path,然后点击用户变量下的编辑,得到下图,点击右侧新建,将你的tesseract.exe的路径写入(我的是D:/Tesseract),然后确定。
Win10环境下python调用Tesseract-OCR进行图片文字识别
同样的,在系统变量中找到Path,按照上述方法将路径加到系统变量的Path中。
4)在下面系统变量中直接”新建“,变量名为TESSDATA_PREFIX,变量值同3)中的tesseract.exe的路径。这个变量的作用是让程序找到语言包,语言包一般统一存放于Tesseract_OCR\tessdata\文件夹中。如果不添加此变量,程序运行将会报错显示找不到可用的语言包。

Win10环境下python调用Tesseract-OCR进行图片文字识别
这样我们的Tesseract-OCR就可以正常工作了。

3、使用python调用Tesseract OCR

首先要安装python库,推荐使用pip进行安装。pip在安装anaconda时已经自动安好了。
打开Anaconda Prompt,分别写入
pip install Pillow
pip install pytesseract
使用pycharm打开Anaconda\Lib\site-packages\pytesseract\pytesseract.py文件,在第35行需要修改路径。

34 # CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY
35 tesseract_cmd = 'D:/Tesseract-OCR/tesseract.exe'#这里修改为你的tesseract.exe安装路径

4、编写简单的python脚本识别文字

以日文为例,新建tesstest.py,将要识别的图片命名为a.jpg并放于tesstest.py的相同路径下。在tesstest.py中编写:

import pytesseract
from PIL import Image

image = Image.open('a.jpg')
text = pytesseract.image_to_string('a.jpg',lang = 'jpn')
print(text)

右上角绿色箭头运行,稍等片刻后下方RUN显示输出结果。
如有报错,欢迎大家给我留言

转载请注明出处

相关文章: