使用tesseract-ocr实现图片中的中英文字符提取

1 tesseract-ocr介绍

OCR(Optical Character Recognition):光学字符识别,是指对图片文件中的文字进行分析识别,获取的过程。

Tesseract:开源的OCR识别引擎,初期Tesseract引擎由HP实验室研发,后来贡献给了开源软件业,后经由Google进行改进,消除bug,优化,重新发布,支持100多种语言。

pytesseract是基于Python的OCR工具, 底层使用的是Google的Tesseract-OCR 引擎,支持识别图片中的文字,支持jpeg, png, gif, bmp, tiff等图片格式。

github地址:https://github.com/tesseract-ocr/tesseract

2 tesseract-ocr安装

2.1 程序安装

Mac和Linux安装方法参考:Introduction | tessdoc

windows系统安装方法详解:

  • 下载与安装

window安装程序下载地址:Index of /tesseract,下载完成后,按向导安装

安装时可以选择需要的语言包:

选择安装路径

注意:安装的路径要与python编写的程序放在同一个磁盘目录下。

  • 设置环境比变量

将tesseract的安装路径添加到PATH环境变量中:

增加名字为TESSDATA_PREFIX的系统变量,变量值设置为tesseract的安装路径

命令行窗口输入:tesseract ,查看是否安装成功。

2.2 python工具包安装

pip install pytesseract
pip install Pillow

3 使用tesseract-ocr提取中英文字符

3.1 图片英文字符识别

import pytesseract
from PIL import Image


# 列出支持的语言
print(pytesseract.get_languages(config=''))

image_path = '../data/ocr_englist.jpg'
result = pytesseract.image_to_string(Image.open(image_path), lang='eng')
print(result)

 运行结果显示如下:

['eng', 'osd']
Spring will come when spring goes.

3.2 图片中文字符识别

中英文模型:https://github.com/tesseract-ocr/tessdata/blob/main/chi_sim.traineddata

存储到‘D:\Tesseract-OCR\tessdata’目录下。

import pytesseract
from PIL import Image


# 列出支持的语言
print(pytesseract.get_languages(config=''))

image_path = '../data/ocr_chinest.jpg'
result = pytesseract.image_to_string(Image.open(image_path), lang='chi_sim')
print(result)

运行结果如下:

['chi_sim', 'eng', 'osd']
短 评 : 中 美 各 自 的 成 功 是 彼 此 的 机 遇

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

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

相关文章

【2023云栖】刘一鸣:Data+AI时代大数据平台建设的思考与发布

简介: 本文根据2023云栖大会演讲实录整理而成,演讲信息如下: 演讲人:刘一鸣 | 阿里云自研大数据产品负责人 演讲主题:DataAI时代大数据平台应该如何建设 今天分享的主题是DataAI时代大数据平台应该如何建设&#xf…

本地mysql服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止

背景介绍: MySQL版本5.7,系统Win7,启动mysql服务时提示如下 解决方案 【会删除库中数据及mysql注册信息】: 1、删除原服务MySQL57 C:\Program Files\MySQL\MySQL Server 5.7\bin>mysqld --remove MySQL572、清空data 清空…

HackTheBox-Starting Point--Tier 2---Archetype

文章目录 一 Archetype测试过程1.1 打点1.2 权限获取1.3 权限提升二 题目 一 Archetype测试过程 1.1 打点 1.端口扫描 nmap -sV -sC 10.129.192.2522.枚举SMB共享 smbclient -N -L \\\\10.129.192.252\\查看backups,并发现 prod.dtsConfig 文件,在 pr…

android初集成flutter,遇到的问题

环境 studio版本:2022.1.1 flutter版本:2.8.0 电脑:mac flutter项目总是报错,编译不过 以 Resources Root 加载 记得设置dart:主工程和flutter项目都需要设置,否则不出现手机链接 下面这个样子就是好了&…

Django模型层

模型层 与数据库相关的,用于定义数据模型和数据库表结构。 在Django应用程序中,模型层是数据库和应用程序之间的接口,它负责处理所有与数据库相关的操作,例如创建、读取、更新和删除记录。Django的模型层还提供了一些高级功能 首…

【嵌入式项目应用】__单片机STM32有什么好的裸机程序架构思路推荐?

目录 前言 没设计好程序架构,根本做不稳定。 按照我的思维,我会这样去设计程序: 那这样的好处是什么? (* ̄︶ ̄)创作不易!期待你们的 点赞、收藏和评论喔。 前言 在我刚出来的时候&#x…

Linux_在命令行中以树状结构显示目录_tree

1、安装tree命令 使用tree命令,可以在命令行中以树状结构显示目录,当你想知道一个路径下文件的结构时十分方便,还有别的选项功能,下面会介绍其中的一些,完整的介绍Linux命令 - tree—LZL在线工具。 sudo apt updates…

python对数据的处理合集——字典、列表...

1.两个列表的数据对比 ①list2包含了list1,求出list2多余的值 #codingutf-8list1[1,3,5] list2[1,3,5,7,9,11] list[] for i in list2:if i not in list1:list.append(i) print(list)②求出两个列共同的值 ③两个列表合并 #第一种: list1 [1, 2, 3] list2 [4, …

pyclipper和ClipperLib操作多边型

目录 1. 等距离缩放多边形 1.1 python 1.2 c 1. 等距离缩放多边形 1.1 python 环境配置pip install opencv-python opencv-contrib-python pip install pyclipper pip install numpy import cv2 import numpy as np import pyclipperdef equidistant_zoom_contour(contour…

YOLOv8/YOLOv7/YOLOv5/YOLOv4/Faster-rcnn系列算法改进【NO.77】引入百度最新提出RT-DETR模型中AIFI模块

前言 作为当前先进的深度学习目标检测算法YOLOv8,已经集合了大量的trick,但是还是有提高和改进的空间,针对具体应用场景下的检测难点,可以不同的改进方法。此后的系列文章,将重点对YOLOv8的如何改进进行详细的介绍&…

openbabel包的安装

今天在安装openbabel的时候,使用pip / 通过源码的方式进行安装openbabel,但是都并没有什么用,直接使用: conda install openbabel 就openbabel3.1.1成功了

Authorization为啥必须要以Bearer开头

最近在公司使用JWT,对请求头信息中的Authorization必须要以Bearer开头有一些疑问,查了一下文档,知道了: Authorization: Bearer your_access_tokenBearer代表Authorization头定义的schema ,除了Bearer,还有…

2760. 最长奇偶子数组 : 抽丝剥茧,图解双指针做法正确性

题目描述 这是 LeetCode 上的 「2698. 求一个整数的惩罚数」 ,难度为 「简单」。 Tag : 「双指针」、「滑动窗口」 给你一个下标从 开始的整数数组 nums 和一个整数 threshold。 请你从 nums 的子数组中找出以下标 l 开头、下标 r 结尾 ( ) 且满足以下条件的 最长子…

【汇编】mov和add指令、确定物理地址的方法、内存分段表示法

文章目录 前言一、学习汇编指令——用中学1.1 汇编指令分析汇编输出分析 二、确定物理地址的方法2.1 什么叫做物理地址2.2 8086中的物理地址2.3 8086CPU给出物理地址的方法2.4 “段地址16偏移地址物理地址”的本质含义 三、内存分段表示法3.1 用分段的方式管理内存3.2 同一段内…

基于SSM的实验室仪器设备管理系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

【数据结构高阶】二叉搜索树

接下来我们来开始使用C来详细讲解数据结构的一些高阶的知识点 本期讲解的是二叉搜索树,对于初阶二叉树有所遗忘的同学可以看到这里: 【精选】【数据结构初阶】链式二叉树的解析及一些基本操作 讲解二叉搜索树主要是为了后面的map和set做铺垫&#xff…

HTML易忽略的角落【目录】

目前已有文章 **** 篇 本专栏是汇集了一些HTML常常被遗忘的知识,这里算是温故而知新,往往这些零碎的知识点,在你开发中能起到炸惊效果。我们每个人都没有过目不忘,过久不忘的本事,就让这一点点知识慢慢渗透你的脑海。 …

【Spring】超详细讲解AOP(面向切面编程)

文章目录 1. 前言2. 什么是AOP3. AOP快速入门4. AOP的核心概念5. 切点表达式6. 切点函数7. 通知8. 总结 1. 前言 本文围绕AOP进行讲解,AOP可以做什么,涉及到了哪些注解,以及各个注解运行的时机,以及Around相较于其它注解有什么不同,并且如果要执行目标方法需要怎么做 2. 什么…

群晖7.2版本通过Container Manager安装xiaoya-alist

小雅Alist,可以说是Alist应用中挂载阿里云最完美的成功案例。 一、下载镜像 注册表中下载镜像 Container Manager应该是7.2版本才改名,就是以前的docker。 打开【Container Manager】-【注册表】-【搜索框】搜索 xiaoya 内容区域,搜出的…

新零售系统平台解决方案 线上线下小程序怎么做

新零售线上线下解决方案是将传统零售业务与互联网科技相结合,通过数字化、智能化手段提升零售业务效率和用户体验的解决方案,它既有提供消费者线下体验,强调“稳”,又有互联网线上的“快”。 线上线下小程序可以通过一体化的进销存…