当前位置: 首页 > news >正文

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

       在前一篇文章基础上,如何将报告图片中的文本解析出来,最近研究了基于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.lryc.cn/news/485623.html

相关文章:

  • JavaWeb之AJAX
  • 算法---解决“汉诺塔”问题
  • 1-Equity-Transformer:求解NP-Hard Min-Max路由问题的顺序生成算法(AAAI-24)(完)(code)
  • linux001.在Oracle VM VirtualBox中ubuntu虚拟系统扩容
  • RabbitMQ教程:路由(Routing)(四)
  • 华为Ensp模拟器配置RIP路由协议
  • 3. langgraph中的react agent使用 (在react agent添加系统提示)
  • (02)ES6教程——Map、Set、Reflect、Proxy、字符串、数值、对象、数组、函数
  • 【快速解决】kafka崩了,重启之后,想继续消费,怎么做?
  • C++ 的发展
  • RabbitMQ 高级特性——延迟队列
  • ‌EAC(Estimate at Completion)和ETC(Estimate to Complete)
  • 【React】状态管理之Zustand
  • Vue3打包自动生成版本JSON文件,添加系统版本检查,实现系统自动更新提示
  • 海量数据有限内存系列问题解决方案
  • FFmpeg 4.3 音视频-多路H265监控录放C++开发十四,总结编码过程,从摄像头获得数据后,转成AVFrame,然后再次转成AVPacket,
  • 内容占位符:Kinetic Loader HTML+CSS 使用CSS制作三角形原理
  • 麒麟nginx配置
  • 如何在 Ubuntu 上安装 Emby 媒体服务器
  • Mac上详细配置java开发环境和软件(更新中)
  • jmeter常用配置元件介绍总结之定时器
  • Spring——提前编译
  • 乐理的学习(音程)
  • 【网络】数据链路层协议——以太网,ARP协议
  • Linux分区、挂载、配额、逻辑卷、RAID、系统综合状态查看
  • 3D Gaussian Splatting 代码层理解之Part1
  • Qt小知识-Q_GLOBAL_STATIC
  • 【SpringBoot】使用过滤器进行XSS防御
  • 创建vue插件,发布npm
  • 【Android Compose原创组件】可拖动滚动条的完美实现