在搭建tesseract-OCR环境中遇到问题和反省
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环境中遇到问题和反省的更多相关文章
- Kubernetes集群搭建之企业级环境中基于Harbor搭建自己的私有仓库
搭建背景 企业环境中使用Docker环境,一般出于安全考虑,业务使用的镜像一般不会从第三方公共仓库下载.那么就要引出今天的主题 企业级环境中基于Harbor搭建自己的安全认证仓库 介绍 名称:Harb ...
- 手动搭建的react环境中,关于图片引入的问题
react手动搭建的环境,require引进来图片不显示,网页src显示[object module] 解决方案 (1)import引进图片 import anli from './img/anli. ...
- 图文详解如何快捷搭建LNMP服务环境
上一篇与大家一起学习了下如何搭建LAMP环境的知识,今天小编再和大家分享下如何快捷地搭建LNMP环境,并搭建起一个网站.Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/S ...
- 如何在没有域的环境中搭建AlwaysOn(二)
对DBA而言,不需要域就可以搭建SQL Server AlwaysOn是Windows Server 2016中最令人兴奋的功能了,它不仅可以降低搭建的成本,而且还减少了部署和运维的工作量. 上篇博客 ...
- 如何在没有域的环境中搭建AlwaysOn(一)
对DBA而言,不需要域就可以搭建SQL Server AlwaysOn是Windows Server 2016中最令人兴奋的功能了,它不仅可以降低搭建的成本,而且还减少了部署和运维的工作量. 该特性可 ...
- Idea开发环境中搭建Maven并且使用Maven打包部署程序
1.配置Maven的环境变量 a.首先我们去maven官网下载Maven程序,解压到安装目录,如图所示: b.配置M2_HOME的环境变量,然后将该变量添加到Path中 备注:必须要有JAVA_HOM ...
- [软件测试]Linux环境中简单清爽的Google Test (GTest)测试环境搭建(初级使用)
本文将介绍单元测试工具google test(GTEST)在linux操作系统中测试环境的搭建方法.本文属于google test使用的基础教程.在linux中使用google test之前,需要对如 ...
- 苹果MAC中安装并搭建Android开发环境的详细步骤
Android的开发平台搭建主要需要的工具有:Java虚拟机JDK.Eclipse.Eclipse插件ADT(Android Developer Tool)和Android开发包SDK,以下是具体的安 ...
- 在 Ubuntu 13.10 中搭建Java开发环境 - 懒人版
本文记录我在Ubuntu 13.10中搭建Java开发环境. 本文环境: Ubuntu 13.10 x64运行在Win7下的VMware Workstation 10中. 1. 安装JDK与JRE s ...
随机推荐
- vue-cli中webpack配置详解
vue-cli是构建vue单页应用的脚手架,命令行输入vue init <template-name> <project-name>从而自动生成的项目模板,比较常用的模板有we ...
- ThinkPHP 数据库操作(七) : 视图查询、子查询、原生查询
视图查询 视图查询可以实现不依赖数据库视图的多表查询,并不需要数据库支持视图,例如: Db::view('User','id,name') ->view('Profile','truename, ...
- 深入解析 H.265 编码模式,带你了解Apple全面推进H.265的原因
今天我们聊聊视频编码.视频文件亘古以来存在一个矛盾:高清画质和视频体积的冲突,相同编码标准下,视频更高清,视频体积更大.因此,应用更先进的视频编码标准,降低视频体积,可以大幅降低网站的流量消耗. 目前 ...
- RabbitMQ学习笔记(二) 工作队列
什么是工作队列? 工作队列(又名任务队列)是RabbitMQ提供的一种消息分发机制.当一个Consumer实例正在进行资源密集任务的时候,后续的消息处理都需要等待这个实例完成正在执行的任务,这样就导致 ...
- 如何在SpringBoot中集成JWT(JSON Web Token)鉴权
这篇博客主要是简单介绍了一下什么是JWT,以及如何在Spring Boot项目中使用JWT(JSON Web Token). 1.关于JWT 1.1 什么是JWT 老生常谈的开头,我们要用这样一种工具 ...
- Object类toString()
Object类是java所有类的始祖,在java中每个类都是由它扩展而来. toString()方法返回一个包含类名与内存地址的文本形式的字符串 即打印对象的时候便会调用此方法. 强烈建议为自定义的 ...
- 你真的会PHP吗?
Note: 1) PHP中的数据类型 PHP一共支持八种数据类型, 4种标量类型,boolean(布尔型),integer(整形),float/double(浮点型)和string(字符串类型), 2 ...
- pycharm安装破解go插件
pycharm 2018以前版本安装go插件可以直接在plugins中搜索 go 插件,然后安装.若是2018以后的版本,go 变成了收费插件,plugins 搜不到.然后Google了一下,有人提供 ...
- Maven教程(4)--Maven管理Oracle驱动包
由于Oracle授权问题,Maven3不提供Oracle JDBC driver,为了在Maven项目中应用Oracle JDBC driver,必须手动添加到本地仓库. 手动添加到本地仓库需要本地有 ...
- 嵌入式系统及应用课程设计——基于STM32的温湿度监测系统
大三上学期期末总结,嗯,没错上学期,写在新学期开始,hhh. 上学期学了一门嵌入式系统及应用的课程,期末的课程设计题目是基于STM32的温湿度监测系统. 记得刚开始做课程设计的时候,听说先设计画出原理 ...