首页 > 编程语言 >python+Tesseract OCR实现截屏识别文字

python+Tesseract OCR实现截屏识别文字

时间:2023-09-25 17:02:08浏览次数:41  
标签:tesseract Tesseract python 截屏 ocr 语言包 OCR 安装



文章目录

  • 一、tesseract-ocr下载安装
  • 1、下载
  • 2、安装tesseract-ocr
  • (1)选择语言
  • (2)开始安装
  • (3)同意许可
  • (4)选择安装的用户
  • (5)选择附带要安装的语言包
  • (6)安装位置
  • (7)开始安装
  • (8)安装完成
  • 3、安装语言包
  • (1)下载安装
  • (2)测试
  • 二、python截屏识别文字
  • 1、安装必须的包
  • 2、截屏识别文字
  • 3、准确度
  • 参考资料


一、tesseract-ocr下载安装

1、下载

以下是关于Tesseract的常用网址
下载地址:https://digi.bib.uni-mannheim.de/tesseract/
官方网站:https://github.com/tesseract-ocr/tesseract
官方文档:https://github.com/tesseract-ocr/tessdoc
语言包地址:https://github.com/tesseract-ocr/tessdata

python+Tesseract OCR实现截屏识别文字_ocr

2、安装tesseract-ocr

(1)选择语言

python+Tesseract OCR实现截屏识别文字_github_02

(2)开始安装

python+Tesseract OCR实现截屏识别文字_ocr_03

(3)同意许可

python+Tesseract OCR实现截屏识别文字_python_04

(4)选择安装的用户

python+Tesseract OCR实现截屏识别文字_开发语言_05

(5)选择附带要安装的语言包

此后会在安装过程中会自动从服务器下载该语言包。(这里不太建议勾选下载语言包,因为下载速度实在太慢。本教程后续会介绍如何拓展语言包,但如果已经的话,可以忽略这个建议。)

默认即可。

python+Tesseract OCR实现截屏识别文字_ocr_06

(6)安装位置

python+Tesseract OCR实现截屏识别文字_github_07

(7)开始安装

python+Tesseract OCR实现截屏识别文字_开发语言_08

(8)安装完成

3、安装语言包

(1)下载安装

https://github.com/tesseract-ocr/tessdata

项目较大,可以按需下载简体中文:

python+Tesseract OCR实现截屏识别文字_python_09


将下载的文件存放到该目录:D:\Program Files\Tesseract-OCR\tessdata

python+Tesseract OCR实现截屏识别文字_github_10


注:若小伙伴无法科学上网,可以从这里下载简体中文语言包:

(2)测试

进入到Tesseract OCR安装目录:

# 查看版本
PS D:\Program Files\Tesseract-OCR> .\tesseract.exe -v
tesseract v5.3.0.20221214
 leptonica-1.78.0
  libgif 5.1.4 : libjpeg 8d (libjpeg-turbo 1.5.3) : libpng 1.6.34 : libtiff 4.0.9 : zlib 1.2.11 : libwebp 0.6.1 : libopenjp2 2.3.0
 Found AVX2
 Found AVX
 Found FMA
 Found SSE4.1
 Found libarchive 3.5.0 zlib/1.2.11 liblzma/5.2.3 bz2lib/1.0.6 liblz4/1.7.5 libzstd/1.4.5
 Found libcurl/7.77.0-DEV Schannel zlib/1.2.11 zstd/1.4.5 libidn2/2.0.4 nghttp2/1.31.0
# 查看安装的语言包
PS D:\Program Files\Tesseract-OCR> .\tesseract.exe --list-langs
List of available languages in "D:\Program Files\Tesseract-OCR/tessdata/" (4):
chi_sim
chi_sim_vert
eng
osd

二、python截屏识别文字

1、安装必须的包

pip install pyautogui
pip install pytesseract

2、截屏识别文字

import pyautogui
import pytesseract

# 设置Tesseract的安装路径(如果它不在默认的系统路径中)
pytesseract.pytesseract.tesseract_cmd = 'D:/Program Files/Tesseract-OCR/tesseract.exe'

# 截取屏幕截图
screenshot = pyautogui.screenshot()

# 定义区域范围(左上角x坐标,左上角y坐标,右下角x坐标,右下角y坐标)
region = (100, 100, 300, 200)

# 从屏幕截图中使用指定区域创建一个新的图像对象
custom_screenshot = screenshot.crop(region)

# 将图像对象转换为灰度图像,以帮助提高文本识别的准确性
custom_screenshot = custom_screenshot.convert('L')

# 使用pytesseract进行文字识别
text = pytesseract.image_to_string(custom_screenshot)

# 打印识别的文本
print(text)

3、准确度

英文准确度还行,中文准确度。。。一言难尽。应该是可以通过训练提高准确度的。

标签:tesseract,Tesseract,python,截屏,ocr,语言包,OCR,安装
From: https://blog.51cto.com/u_13540373/7597291

相关文章

  • Python爬虫基础(四):使用更方便的requests库
    文章目录系列文章索引一、requests库的使用1、官方文档2、安装requests库3、简单使用4、使用get请求5、使用post请求6、使用代理二、实战1、实战:实现古诗文网的登录(1)找到登录页面(2)登录操作需要的数据(3)获取隐藏域中的数据(4)获取验证码图片(5)登录操作(6)获取我的收藏2、实战:使用超级鹰验......
  • Python——25days
    日志模块logging(CV)第三方模块的下载与安装**——————————————————————————————什么是日志:日志就是在你编码的过程中记录一些代码的变化比如:记录用户什么时间登录的用户什么时间注册的等日志的存在形式:文件类型的MySQL中elasticsearch搜......
  • [python] 调用CMD写入文件
    [python]调用CMD写入文件importosos.system('echohelloworld>>"e:\\123.txt"')print('ok')运行后,将会在e盘下生成一个名为123.txt的文本文件,文件内容为“helloworld”注:e:\123.txt中的斜线必须为双斜线,第一个斜线为转义字符。......
  • python 缓存机制如何实现(cacheout)
    Python缓存机制可以使用第三方库cacheout来实现。cacheout提供了一个Cache类,它支持多种缓存策略,包括LRU、FIFO、LFU和TTL。Cache类的基本使用方法如下:1.安装cacheout:pipinstallcacheout2.导入Cache类:fromcacheoutimportCache3.创建Cache对象:cac......
  • Python txt文本内容转换
    #读取原始文本内容withopen("input.txt","r")asfile:lines=file.readlines()output_lines=[]#处理每一行数据forlineinlines:values=line.strip().split("\t")#判断第一个值是否已存在于结果列表中ifvalues[0]in[line.split(&qu......
  • 【Python入门教程】Python实现猜数字小游戏
    ​    今天跟大家分享一下很久之前自己做的一款猜数字小游戏,基本的循环判断语句即可实现,可以用来当练手或者消磨时间用。    大家在编代码的时候最重要就是先理清逻辑思路,例如应该套几层循环、分几个模块等等。然后在编码时可以先随意一点,变量名、函数等可以先......
  • python 排序
    在您的代码中,排序函数中的`elem`是一个未定义的变量,因此会导致`NameError`错误。在Python中,`elem`不是一个内置变量,您需要使用实际的变量或表达式来代替。从您提供的数据和示例代码来看,您似乎希望按照每个子列表中的第一个元素进行排序。为了修复错误,您可以使用lambda函......
  • python 使用selenium 获取js渲染后的页面信息
    一、介绍二、代码三、问题 一、介绍现在的网站以及页面,一般都是js动态渲染,抓到的信息就与实际不符,所以需要加载js的工具,这里使用的就是seleniumSelenium是一个用于自动化测试的工具,可以模拟浏览器的行为来执行各种操作。在爬虫中,我们可以使用Selenium对网页进行......
  • Python dataclass 如何让传入的 field 为 None 时自动转化为默认值?
    一般dataclass的字段可以设置default或default_factory生成默认值,当传入参数时,默认值不会生效。但是,有些情况下受限于外部调用环境,某些参数缺失时,以None的形式存在,而非创建dataclass实例时不传入参数。这种情况下,可能会希望传入的None被识别到并转化为默认值。fromd......
  • 【Python】Main函数的使用方法
    Start在Python中,类(Class)本身没有main函数。但是,您可以在类中定义一个方法(例如main),然后在类的实例中调用该方法。在Python中,通常使用if__name__=="__main__":来检查当前模块是否作为主程序运行。如果是,则执行相应的代码。下面是一个简单的示例,说明如何在Python类中定义一个mai......