tesseract-ocr一站式安装与使用

目录

前言

安装tesseract-ocr

添加环境变量

1、在path中添加

2、在系統變量中添加

3、验证是否添加成功

添加语言包

更多语言包下载

示例程序


前言

如果你遇到了:make sure the TESSDATA_PREFIX Failed loading language \‘chi_sim

那么就是语言包缺少这个!chi_sim!!!请看下面内容

首先,你得找一篇文章了解tesseract-ocr

Tesseract-OCR 是一个开源的光学字符识别引擎,可以用于从图像中提取文本信息。它最初由惠普实验室开发,后来被谷歌收购并开源。Tesseract 可以识别多种语言,并且在处理复杂的文档布局时表现良好。

Tesseract 使用的是深度学习和模式识别算法来识别图像中的字符,并将其转换成计算机可处理的文本数据。它支持多种操作系统,包括 Windows、Linux 和 macOS,并提供了多种编程语言的接口,比如 Python、Java 和 C++,使得开发者可以方便地集成到各种应用程序中进行文字识别。

Tesseract-OCR 被广泛应用于文档处理、图像识别、自动化办公、数字化档案等领域,为用户提供了快速、准确地从图像中提取文本的能力。

今天给同学跑项目,他的项目用到了tesseract-ocr

结果搞半天,百度出来的CSDN链接,下载那些包,还全部要钱,大无语...

总结:

1、直接开着梯子去GitHub下载最新版的【tesseract-ocr】
2、然后直接选择需要识别的语言类型(一般我们需要识别中文的,就选择一下中文就行了)


安装包+中文识别语言包,我都放在蓝奏云了,可以直接安装,然后跑demo

跟着下面教程内容走就行了

最后就可以直接跑demo了!

安装tesseract-ocr

Releases · UB-Mannheim/tesseract (github.com) 直接进去下载最新版即可

安装包——蓝奏云备份:

tesseract-ocr-w64-setup-5.3.3.20231005.zip - 蓝奏云文件大小:47.8 M|icon-default.png?t=N7T8https://wwm.lanzout.com/i8bPj1tzz21e

接下来一路ok就行了——就只有在语言下载那里,需要开梯子

需要开梯子

需要开梯子

需要开梯子

不然会下载语言包失败!!!

不然会下载语言包失败!!!

不然会下载语言包失败!!!

注意这里!!!

注意这里!!!

注意这里!!!

自己记着安装路径——以后要加环境变量

自己记着安装路径——以后要加环境变量

自己记着安装路径——以后要加环境变量

添加环境变量

1、在path中添加

 tesseract-ocr ——【找到自己的安装路径】

我的:D:\Tesseract-OCR

2、在系統變量中添加

变量名:TESSDATA_PREFIX

变量值:D:\Tesseract-OCR\tessdata

3、验证是否添加成功

打开cmd ->输入命令

tesseract -v

添加语言包

语言包下载

如果你没有梯子,在这里下载失败了,就可以单独下载语言包

如果你没有梯子,在这里下载失败了,就可以单独下载语言包

如果你没有梯子,在这里下载失败了,就可以单独下载语言包

蓝奏云备份(这里是中文语言包):

tessdata语言包-中文+英文.zip - 蓝奏云文件大小:7.4 M|icon-default.png?t=N7T8https://wwm.lanzout.com/iT9K41u00y2d把语言包——放在这里面就行了!!!

把语言包——放在这里面就行了!!!

把语言包——放在这里面就行了!!!

更多语言包下载

GitCode - 开发者的代码家园icon-default.png?t=N7T8https://gitcode.com/tesseract-ocr/tessdata/tree/main

示例程序

pip install Pillow pytesseract
from PIL import Image
import pytesseract

# 使用 pytesseract 进行文字识别,lang 参数指定识别语言为简体中文
text = pytesseract.image_to_string(Image.open(r'D:\333.png'),lang='chi_sim')
print(text)

其他

from PIL import Image
import pytesseract

# 设置 Tesseract 路径(根据你的安装路径修改)
pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files (x86)\Tesseract-OCR\tesseract.exe"

# 打开图像文件
image_path = r'D:\333.png'
image = Image.open(image_path)

# 使用 pytesseract 进行文字识别,lang 参数指定识别语言为简体中文
text = pytesseract.image_to_string(image, lang='chi_sim')

# 打印识别结果
print(text)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/526917.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【简单讲解下Fine-tuning BERT】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

XAMPP本地开发环境软件的最佳替代品

在开发新网站或应用时,选择合适的本地开发环境是至关重要的。本地开发环境让您可以在自己的电脑上搭建和测试网站或应用,直到它们准备好被迁移到线上服务器。一些工具甚至提供了推送到生产环境的功能,以及设置多个本地站点的能力。 XAMPP是一…

34-5 CSRF漏洞 - CSRF分类

环境准备:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客 1)GET 类型 传参: 参数连接在URL后面 POC构造及执行流程: 构造URL,诱导受害者访问点击利用利用标签进行攻击: 构造虚假URL,在链接上添加payload抓包获取数据包,通过CSRF POC…

ping命令返回无法访问目标主机和请求超时浅析

在日常经常用ping命令测试网络是否通信正常,使用ping命令时也经常会遇到这两种情况,那么表示网络出现了问题。 1、请求超时的原因 可以看到“请求超时”没有收到任何回复。要知道,IP数据报是有生存时间的,当其生存时间为零时就会…

K8s学习七(服务发现_2)

Ingress Service 主要用于集群内部的通信和负载均衡,而 Ingress 则是用于将服务暴露到集群外部,并提供灵活的 HTTP 路由规则。在实际应用中,它们通常结合使用,Service 提供内部通信和负载均衡,Ingress 提供外部访问和…

植物糖基转移酶数据库-23年-地表最强系列-文献精读-6

pUGTdb: A comprehensive database of plant UDP-dependent glycosyltransferases pUGTdb:植物UDP依赖糖基转移酶的全面数据库 一篇关于植物糖基转移数据库的综述,地表最强,总结的最全面的版本之一,各位看官有推荐请留言评论区~…

自定义复选款与单选框,input

注&#xff1a;字体文字取自bootstrap字体库https://icons.bootcss.com/icons <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style>.checkbox-com,.radio-com {position: relative;display: inlin…

javaWeb物流信息网的设计与实现

摘要 本文讲述了基于JSP物流信息网的设计与实现。该系统使用java语言开发&#xff0c;使系统具有更好的平台性和可扩展性。 该系统实现了用户登录、注册、查询快递信息、快递公司注册成为合作伙伴以及系统管理员对信息进行管理等功能。系统的主要界面会将所有的服务排列好&…

get请求搜索功能爬虫

<!--爬虫仅支持1.8版本的jdk--> <!-- 爬虫需要的依赖--> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.2</version> </dependency>…

STM32一个地址未对齐引起的 HardFault 异常

1. 概述 客户在使用 STM32G070 的时候&#xff0c;KEIL MDK 为编译工具&#xff0c;当编译优化选项设置为Level0 的时候&#xff0c;程序会出现 Hard Fault 异常&#xff0c;而当编译优化选项设置为 Level1 的时候&#xff0c;则程序运行正常。表面上看&#xff0c;这似乎是 K…

Python计算多个表格中多列数据的平均值与标准差并导出为新的Excel文件

本文介绍基于Python语言&#xff0c;对一个或多个表格文件中多列数据分别计算平均值与标准差&#xff0c;随后将多列数据对应的这2个数据结果导出为新的表格文件的方法。 首先&#xff0c;来看一下本文的需求。现有2个.csv格式的表格文件&#xff0c;其每1列表示1个变量&#x…

Java Number类

一般情况下我们会使用数据的基本数据类型&#xff1a;byte、int、short、long、double、float、boolean、char&#xff1b; 对应的包装类型也有八种&#xff1a;Byte、Integer、Short、Long、Double、Float、Character、Boolean; 包装类型都是用 final 声明了&#xff0c;不可…

2024-04-07 作业

作业要求&#xff1a; 1> 思维导图 2> 自由发挥应用场景实现一个登录窗口界面。 【可以是QQ登录界面、也可以是自己发挥的登录界面】 要求&#xff1a;尽量每行代码都有注释 作业1&#xff1a; 作业2&#xff1a; 运行代码&#xff1a; #include "myqwidget.h&quo…

橘子学JDK之JMH-01(入门)

一、前言 清明节在家的时候&#xff0c;有个老弟在一个群里看到一段代码。 package com.cache.mycache;import org.openjdk.jmh.annotations.*; import org.openjdk.jmh.results.format.ResultFormatType; import org.openjdk.jmh.runner.Runner; import org.openjdk.jmh.run…

STM32的位操作(相当于51单片机的sbit)

经过一段时间的学习&#xff0c;今天发现STM32的单个端口都有一个32位的地址&#xff0c;这样就可以把这个地址给找出来&#xff0c;进行单个位的操作了&#xff0c;这也没有什么好说的&#xff0c;直接复制粘贴就好了&#xff0c;用到的时候过来复制直接使用就行了。虽然看着挺…

深入理解指针2:数组名理解、一维数组传参本质、二级指针、指针数组和数组指针、函数中指针变量

目录 1、数组名理解 2、一维数组传参本质 3、二级指针 4、指针数组和数组指针 5、函数指针变量 1、数组名理解 首先来看一段代码&#xff1a; int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };printf("%d\n", sizeof(arr));return 0; } 输出的结果是&…

Astra深度相机在Ubuntu18.04系统下实现相机标定

问题&#xff1a; 当使用Astra相机的启动的指令启动相机后&#xff0c;使用rviz查看相机所发布的rgb数据时&#xff0c;在终端会出现如下的提示信息&#xff1a; Camera calibration file /home/car/.ros/camera_info/rgb_Astra_Orbbec.yaml not found. Camera calibration fil…

深度学习基础之一:机器学习

文章目录 深度学习基本概念(Basic concepts of deep learning)机器学习典型任务机器学习分类 模型训练的基本概念基本名词机器学习任务流程模型训练详细流程正、反向传播学习率Batch size激活函数激活函数 sigmoid 损失函数MSE & M交叉熵损失 优化器优化器 — 梯度下降优化…

10.枚举

1.背景及定义 枚举是在JDK1.5以后引入的。 主要用途是&#xff1a; 将一组常量组织起来&#xff0c; 在这之前表示一组常量通常使用定义常量的方式&#xff1a; public static final int RED 1; public static final int GREEN 2; public static final int BLACK 3; 但是…

Java中线程安全集合类

Java中线程安全类可以分为三大类 遗留的线程安全集合如Hashtable、vectorJava.util.concurrent.*&#xff08;包含三类关键词&#xff1a;Blocking、CopyOnWrite、Concurrent&#xff09;使用Collections装饰的线程安全集合&#xff0c;如&#xff1a; Collections.synchroniz…