Tesseract,一款由HP实验室开发由Google维护的开源OCR(Optical Character Recognition , 光学字符识别)引擎,特点是开源,免费,支持多语言,多平台。

在搭建流程很简单:

(1)下载并安装 tesserct-ocr(记住安装路径)

Windows版exe安装文件地址:https://github.com/UB-Mannheim/tesseract/wiki

(2)安装pytesseract:

在cmd中,直接:pip install pytesseract

(3)配置下环境:

其中pytesseract.py文件存储在Python包文件夹中,你可以使用如下语句找到其绝对路径:

(4)编写4行代码测试OCR识别效果:

——————————————————————————————————————————————————————————————————

上述流程很简单,但是实际上自己花了近3个小时才疏通该环境,其中近两个小时在解决一个报错问题:

无论我怎么修改pytesseract.py那行语句(比如路径用 \\双斜杠、或路径前加‘r’,或用‘/’反斜杠,或去掉.exe),或是修改环境变量,或是重启jupyter notebook,找遍网上几乎所有解答,几乎都没用。

其中步骤(3)配置环境中,自己也早使用方法3尝试解决过这个问题,但当时没起作用,当时也不清楚方法3的真实作用。经过近两个小时捣鼓后,终于在https://blog.csdn.net/jacke121/article/details/75443785博客中找到解决办法。

我直接粘贴复制其代码,修改了图片路径和pytesseract.py路径,在jupyter notebook中执行后,瞬间看到了OCR识别结果。泪崩~

问题原因:

(1)起始当初自己也用过方法3,但报了一个错,依旧是“系统找不到指定文件”,自己就以为该方法同样不起作用。其实那时,自己在使用该方法时,没有意识到路径要使用 \\ 或者 / 或者 加前缀r,依旧使用的 \ !

而之后再寻找答案中,明白路径怎么写后,又忘记当初测试方法3时用错了路径规则。真是‘测不逢时’。。。

(2)导致“系统找不到指定文件”的原因是:pytesseract.py文件在E盘,而自己jupyter notebook默认只能浏览F盘内文件,为了能够在jupyter中浏览pytesseract.py文件的内容(比用记事本打开更直观、也比其他软件更快速),我就手残将该文件复制了一份到用于测试该项目的jupyter源文件夹内,而由于我在测试代码里写了:,所以测试代码一直import的是我刚才复制的那一份pytesseract.py,而后续所有环境配置的操作,都是修改的是E盘中那份原始pytesseract.py。所以无论我怎么去改环境变量、修改原始pytesseract.py文件中的代码,报错依旧无法解决。

(3)在巧合下,某此复制别人代码,终于解决了这个问题。后来,通过溯源,也明白了很多技术原理,比如的作用,就是修改源文件中'tesseract_cmd'变量的值。

有用的参考:

https://github.com/nikhilkumarsingh/tesseract-python

https://blog.csdn.net/jacke121/article/details/75443785

https://blog.csdn.net/u011085172/article/details/71466182

在搭建tesseract-OCR环境中遇到问题和反省的更多相关文章

  1. Kubernetes集群搭建之企业级环境中基于Harbor搭建自己的私有仓库

    搭建背景 企业环境中使用Docker环境,一般出于安全考虑,业务使用的镜像一般不会从第三方公共仓库下载.那么就要引出今天的主题 企业级环境中基于Harbor搭建自己的安全认证仓库 介绍 名称:Harb ...

  2. 手动搭建的react环境中,关于图片引入的问题

    react手动搭建的环境,require引进来图片不显示,网页src显示[object module] 解决方案 (1)import引进图片 import anli from './img/anli. ...

  3. 图文详解如何快捷搭建LNMP服务环境

    上一篇与大家一起学习了下如何搭建LAMP环境的知识,今天小编再和大家分享下如何快捷地搭建LNMP环境,并搭建起一个网站.Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/S ...

  4. 如何在没有域的环境中搭建AlwaysOn(二)

    对DBA而言,不需要域就可以搭建SQL Server AlwaysOn是Windows Server 2016中最令人兴奋的功能了,它不仅可以降低搭建的成本,而且还减少了部署和运维的工作量. 上篇博客 ...

  5. 如何在没有域的环境中搭建AlwaysOn(一)

    对DBA而言,不需要域就可以搭建SQL Server AlwaysOn是Windows Server 2016中最令人兴奋的功能了,它不仅可以降低搭建的成本,而且还减少了部署和运维的工作量. 该特性可 ...

  6. Idea开发环境中搭建Maven并且使用Maven打包部署程序

    1.配置Maven的环境变量 a.首先我们去maven官网下载Maven程序,解压到安装目录,如图所示: b.配置M2_HOME的环境变量,然后将该变量添加到Path中 备注:必须要有JAVA_HOM ...

  7. [软件测试]Linux环境中简单清爽的Google Test (GTest)测试环境搭建(初级使用)

    本文将介绍单元测试工具google test(GTEST)在linux操作系统中测试环境的搭建方法.本文属于google test使用的基础教程.在linux中使用google test之前,需要对如 ...

  8. 苹果MAC中安装并搭建Android开发环境的详细步骤

    Android的开发平台搭建主要需要的工具有:Java虚拟机JDK.Eclipse.Eclipse插件ADT(Android Developer Tool)和Android开发包SDK,以下是具体的安 ...

  9. 在 Ubuntu 13.10 中搭建Java开发环境 - 懒人版

    本文记录我在Ubuntu 13.10中搭建Java开发环境. 本文环境: Ubuntu 13.10 x64运行在Win7下的VMware Workstation 10中. 1. 安装JDK与JRE s ...

随机推荐

  1. vue-cli中webpack配置详解

    vue-cli是构建vue单页应用的脚手架,命令行输入vue init <template-name> <project-name>从而自动生成的项目模板,比较常用的模板有we ...

  2. ThinkPHP 数据库操作(七) : 视图查询、子查询、原生查询

    视图查询 视图查询可以实现不依赖数据库视图的多表查询,并不需要数据库支持视图,例如: Db::view('User','id,name') ->view('Profile','truename, ...

  3. 深入解析 H.265 编码模式,带你了解Apple全面推进H.265的原因

    今天我们聊聊视频编码.视频文件亘古以来存在一个矛盾:高清画质和视频体积的冲突,相同编码标准下,视频更高清,视频体积更大.因此,应用更先进的视频编码标准,降低视频体积,可以大幅降低网站的流量消耗. 目前 ...

  4. RabbitMQ学习笔记(二) 工作队列

    什么是工作队列? 工作队列(又名任务队列)是RabbitMQ提供的一种消息分发机制.当一个Consumer实例正在进行资源密集任务的时候,后续的消息处理都需要等待这个实例完成正在执行的任务,这样就导致 ...

  5. 如何在SpringBoot中集成JWT(JSON Web Token)鉴权

    这篇博客主要是简单介绍了一下什么是JWT,以及如何在Spring Boot项目中使用JWT(JSON Web Token). 1.关于JWT 1.1 什么是JWT 老生常谈的开头,我们要用这样一种工具 ...

  6. Object类toString()

    Object类是java所有类的始祖,在java中每个类都是由它扩展而来. toString()方法返回一个包含类名与内存地址的文本形式的字符串  即打印对象的时候便会调用此方法. 强烈建议为自定义的 ...

  7. 你真的会PHP吗?

    Note: 1) PHP中的数据类型 PHP一共支持八种数据类型, 4种标量类型,boolean(布尔型),integer(整形),float/double(浮点型)和string(字符串类型), 2 ...

  8. pycharm安装破解go插件

    pycharm 2018以前版本安装go插件可以直接在plugins中搜索 go 插件,然后安装.若是2018以后的版本,go 变成了收费插件,plugins 搜不到.然后Google了一下,有人提供 ...

  9. Maven教程(4)--Maven管理Oracle驱动包

    由于Oracle授权问题,Maven3不提供Oracle JDBC driver,为了在Maven项目中应用Oracle JDBC driver,必须手动添加到本地仓库. 手动添加到本地仓库需要本地有 ...

  10. 嵌入式系统及应用课程设计——基于STM32的温湿度监测系统

    大三上学期期末总结,嗯,没错上学期,写在新学期开始,hhh. 上学期学了一门嵌入式系统及应用的课程,期末的课程设计题目是基于STM32的温湿度监测系统. 记得刚开始做课程设计的时候,听说先设计画出原理 ...