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. mysql主从集群配置

    1.二进制日志 主: #master vim /etc/mysql/my.cnf #server-id server-id=2 #二进制日志 log-bin=musql-bin#statement r ...

  2. C# 使用 HttpClient 调用 WebService 提示 NoSOAPAction

    问题 在自行构造 HttpClient 请求 SOAP 接口之后,返回 500 错误,并且提示 NoSOAPAction 信息. 原因 造成这个问题的主要原因是因为缺少了 SOAPAction 标头, ...

  3. Python内置函数(35)——issubclass

     英文文档: issubclass(class, classinfo) Return true if class is a subclass (direct, indirect or virtual) ...

  4. 【转】Kali更新源

    1.切换到root用户(如果已经是root用户就直接看第二步) dnt@Kali:~$ su 2.用vim打开sources.list,手动添加下面的更新源 root@Kali:~# vim /etc ...

  5. Android中颜色透明度对应16进制值

    透明度百分比对应的十六进制: (说明:百分比计算出来会有小数,按照常规的四舍五入处理,详情请往下查看) 百分比:0% HEX: 00 百分比:1% HEX: 30 百分比:2% HEX: 50 百分比 ...

  6. Unix程序员的Win10二三事

    macOS延续自BSD Unix, Linux则是从内核开始重新编写但延续Unix使用方式的Unix.所以mac还有linux程序员,一般都算是*nix程序员,尽管其中还有不少的区别. Windows ...

  7. 知其所以然~mongodb副本集

    MongoDB 复制(副本集) MongoDB复制是将数据同步在多个服务器的过程. 复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性. 复制还允许您 ...

  8. TypeScript 素描 - 高级类型、迭代器

    /* 交叉类型,在TypeScrpt中是很特有的.所以值得认真学习 交叉类型是将多个类型合并为一个类型,这让我们可以把现有的多种类型叠加到一起成为一种 类型 交叉类型同时拥有 Person 和 Emp ...

  9. ELK-Logstash采集日志和输送日志流程测试

    讲解Logstash采集日志和输送日志流程测试,包括input,filter和output元素的测试 配置一:从elasticsearch日志文件读取日志信息,输送到控制台 $ cd /home/es ...

  10. C语言数组操作和指针操作谁更高效

    在上一篇博文  代码优化小技巧(持续更新......) 第三条关于数组和指针谁更高效, 意犹未尽, 决定单独拉出一篇来讲 1. 数组和指针操作对比 #include <stdio.h> i ...