如何基于Tesseract实现图片的文本识别

ops/2024/11/17 23:02:12/

       在前一篇文章基础上,如何将报告图片中的文本解析出来,最近研究了基于Tesseract的OCR方案,Tesseract OCR是一个开源的OCR引擎,主要结合开源的tesseract和pytesseract,实现了jpg/png等格式图片文本识别,供大家参考,具体步骤和测试示例如下。

1.下载和安装tesseract和pytesseract

先安装pytesseract包,安装命令:pip3 install pytesseract
下载tesseract工具,地址:Home · UB-Mannheim/tesseract Wiki · GitHub
下载支持语言包(tessdata),地址:https://github.com/tesseract-ocr/tessdata,解压后拷贝到D:\tools\Tesseract-OCR目录下。

2.配置环境变量

配置环境到path变量:D:\xxx\Tesseract-OCR\tessdata和D:\xxx\Tesseract-OCR
增加环境变量TESSDATA_PREFIX=D:\xxx\Tesseract-OCR\tessdata
查看Tesseract的配置运行情况:tesseract -v 和 tesseract --list-langs

3.修改tesseract_cmd命令路径

修改pytesseract下的pytesseract.py文件,将tesseract路径设置为如下路径,具体如下:
tesseract_cmd = 'D:\xxx\Tesseract-OCR\tesseract.exe'

4.测试示例
# 利用tesseract实现图像的OCR,通过OCR提取图像中的文本信息,详见txt目录。  
localFiles=['d:\img\1.jpg']
image = Image.open(Path(localFiles[i]))
ocr_text = pytesseract.image_to_string(image) 
ocrfilename = localFiles[i].split('\\')[-1][:-4]
with open(os.path.join(output_folder, f'{ocrfilename}.txt'), 'w',  encoding='utf-8') as ocr_file:  ocr_file.write(ocr_text)  
print(str(i) + ".", ocrfilename, ' is completed by ocr')
5.OCR识别结果

原始图片

识别文字结果


http://www.ppmy.cn/ops/134559.html

相关文章

二分查找算法

目录 二分查找算法 题目1——704. 二分查找 - 力扣(LeetCode) 1.1.暴力解法 1.2.二分查找算法 1.3.朴素的二分查找算法模板 题目2——34. 在排序数组中查找元素的第一个和最后一个位置 - 力扣(LeetCode) 2.1.暴力解法 2.2.…

Python爬虫下载新闻,Flask展现新闻(2)

上篇讲了用Python从新闻网站上下载新闻,本篇讲用Flask展现新闻。关于Flask安装网上好多教程,不赘述。下面主要讲 HTML-Flask-数据 的关系。 简洁版 如图,页面简单,主要显示新闻标题。 分页,使用最简单的分页技术&…

C# yolo10使用onnx推理

一、前言 本篇总结C#端使用yolo10的onnx文件做模型推理,主要使用Microsoft.ML.OnnxRuntime.Gpu这个库。需要注意的是Microsoft.ML.OnnxRuntime 和 Microsoft.ML.OnnxRuntime.Gpu 这2库只装1个就行,CPU就装前者,反之后者。然后需要注意系统安装…

大数据治理:从概念到实践的旅程

大数据治理:从概念到实践的旅程 在这个数字化飞速发展的时代,数据如同石油一样成为了推动社会进步的重要资源。大数据治理,作为管理这一宝贵资源的关键实践,其重要性日益凸显。它不仅关乎数据的准确性、一致性和可靠性&#xff0…

Ollama—87.4k star 的开源大模型服务框架!!

这一年来,AI 发展的越来越快,大模型使用的门槛也越来越低,每个人都可以在自己的本地运行大模型。今天再给大家介绍一个最厉害的开源大模型服务框架——ollama。 项目介绍 Ollama 是一个开源的大语言模型(LLM)服务工具…

【H3C华三 】VRRP与BFD、Track联动配置案例

原创 厦门微思网络 组网需求 如图1所示,区域A和区域B用户所在网络的出口处部署了两台汇聚层设备(Device A和Device B)。 现要求使用VRRP与BFD、Track联动功能,实现以下需求: • 在Device A和Device B上分别配置两个…

【机器学习】特征工程、降维与超参数调优:提升机器学习模型表现的三大核心技术

💗💗💗欢迎来到我的博客,你将找到有关如何使用技术解决问题的文章,也会找到某个技术的学习路线。无论你是何种职业,我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章,也欢…

用指针遍历数组

#include<stdio.h> int main() {//定义一个二维数组int arr[3][4] {{1,2,3,4},{2,3,4,5},{3,4,5,6},};//获取二维数组的指针int (*p)[4] arr;//二维数组里存的是一维数组int[4]for (int i 0; i < 3; i){//遍历一维数组for (int j 0; j <4; j){printf("%d &…