[python]windows上tesseractocr模块安装和使用

server/2025/1/26 7:52:18/

首先必须要搞清楚pytesseract和tesseractocr模块区别和联系。
1、pytesseract是官方维护的python模块,使用pip install即可安装,需要提前安装好tesseract的安装包并将路径加入环境变量
2、tesseractocr是非官方的python第三方模块,使用pip install一般都无法直接安装上,需要提供whl文件安装才方便,当然也需要提前安装好tesseract的安装包并将路径加入环境变量
tesseractocr的whl文件是通过tesseract源码编译得来的,以下是tesseractocr和需要安装tesseract对应版本关系,一般从5.x开始区别不大了,其实版本不对应也是可以使用的

tesseractocr版本tesseact版本
2.7.15.4.1
2.7.05.3.4
2.6.25.3.4
2.6.05.3.1
2.5.25.3.0
2.4.04.0.0

注意:上面版本是根据官方最新whl版本统计。

以下是Python模块tesseractocr的安装步骤和测试代码:

一、安装步骤

1. 安装Tesseract OCR引擎
  • 下载:从Tesseract的官方页面或其他可信来源下载Tesseract OCR的安装包。确保选择与操作系统兼容的版本。
  • 安装:双击安装包进行安装。在安装过程中,可以勾选“Additional language data”选项以安装OCR识别支持的语言包。这样OCR便可以识别多国语言。如果不勾选,也可以自行下载语言包并添加到tessdata目录下。这里推荐自行下载,如果勾选可能会导致安装失败
2. 配置环境变量
  • 找到Tesseract OCR的安装目录,并将该目录添加到系统的环境变量中。这通常是通过右键单击“此电脑”(或“计算机”),选择“属性”,然后单击“高级系统设置”、“高级”和“环境变量”来完成的。
  • 在“系统变量”部分,找到名为Path的变量,并选择“编辑”。然后,点击“新建”并将Tesseract OCR的安装路径添加到列表中。
  • 另外,还可以创建一个新的系统变量TESSDATA_PREFIX,其值为Tesseract OCR安装路径加上\tessdata
3. 安装Python依赖库
  • 打开命令行工具(如cmd、PowerShell或终端),并确保已经安装了Python和pip。
  • 使用pip安装tesseractocr(或pytesseract)和Pillow库。命令如下:
pip install tesserocr pillow
  • 如果直接安装tesseractocr失败,可以尝试从gitee.com/FIRC/pythonlibs_whl_mirror或其他来源下载对应的.whl文件,并使用pip进行本地安装。例如:
pip install D:/path/to/tesserocr-x.x.x-cpxx-cpxxm-win_amd64.whl

将上述命令中的路径替换为.whl文件的实际路径。

二、测试代码

以下是一个使用tesseractocr和Pillow库进行OCR识别的示例代码:

python"># -*- coding: utf-8 -*-
from PIL import Image
import tesserocr
img=Image.open('test.jpg')
print(img.size)
text = tesserocr.image_to_text(img,lang='chi_sim')
print('ocr result is:',text)

注意事项

  • 确保Tesseract OCR引擎已正确安装并配置到环境变量中。
  • 在使用tesseractocr时,请确保已安装对应的Python库。
  • 如果需要识别非英文文本,请确保已安装相应的语言包并将其放置在Tesseract OCR的tessdata目录下。
  • OCR识别的准确性受到图像质量、文本布局和字体等多种因素的影响。因此,在实际应用中可能需要对图像进行预处理以提高识别准确性。

通过以上步骤和代码示例,您应该能够在Python环境中成功安装并使用tesseractocr进行OCR识别。
可能会遇到报错:
Failed to init API, possibly an invalid tessdata path: ./
解决方法:
添加“TESSDATA_PREFIX”到系统环境变量中,值为testdata的父路径(一般就是 Tesseract-OCR 的安装路径)亦可解决。在环境变量中添加

变量:TESSDATA_PREFIX

值:D:\Program Files\Tesseract-OCR\tessdata

注意上面要对应自己真实tessdata文件夹


http://www.ppmy.cn/server/161229.html

相关文章

OpenAI战略转型:从安全研发到市场竞争

标题:OpenAI战略转型:从安全研发到市场竞争 文章信息摘要: OpenAI正经历从安全导向向市场竞争导向的战略转型,通过开发类似《Her》电影中的AI助手等产品来满足用户需求。在技术层面,其GPT-4模型在多模态处理方面取得重…

VUE之路由Props、replace、编程式路由导航、重定向

目录 1、路由_props的配置 2、路由_replaces属性 3、编程式路由导航 4、路由重定向 1、路由_props的配置 1)第一种写法,将路由收到的所有params参数作为props传给路由组件 只能适用于params参数 // 创建一个路由器,并暴露出去// 第一步…

自定义数据集使用scikit-learn中的包实现线性回归方法对其进行拟合

自定义数据集使用scikit-learn中的包实现线性回归方法对其进行拟合 import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squar…

Unity入门2 背景叠层 瓦片规则

切割场景 瓦片调色盘 放在Assets里面新建瓦片地图,palettes tile 瓦片 palettes调色板 上下窗口是分开的 拖进这个格子窗 瓦片太碎,要封装 装好之后,只是把瓦片放上去了,但是还没有画布,显示是这样的 no valid target 新建“…

vue高级组件封装 element组件二次封装

vue高级组件封装 element组件二次封装 相关解读 使用defineOptions定义组件名称使用useSlots获取插槽 获取父组件传递过来的dialog组件的插槽 通过循环直接通过动态插槽插入el-dialog组件中使用defineExpose暴露组件方法 父组件可通过ref直接调用使用v-bind"$attrs"…

算法10(力扣20)-有效的括号

1、问题 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 每个右括号都有一个对应的相同类…

什么是僵尸进程

什么是僵尸进程 1. 僵尸进程的定义 僵尸进程是指那些已经终止执行(即已经调用了exit()或者完成了main()函数),但其父进程尚未通过wait()或waitpid()系统调用获取其退出状态的进程。在进程的生命周期中,当一个子进程结束时&#…

在Debian系统中安装Debian(Linux版PE装机)

一、背景 之前已经写过两篇在移动硬盘/U盘中安装Debian系统的帖子,详见: Debian 12移动硬盘安装完全指南https://blog.csdn.net/Asgard_Hu/article/details/131221474移动硬盘制作随身Debian(GPTUEFI)https://blog.csdn.net/Asga…