tesserocr与pytesseract模块的使用方法解析

当我们需要进行文字识别时,tesserocr和pytesseract是两个常用的Python模块。它们本质上都是封装了Google Tesseract OCR引擎的Python API,因此都能够实现图片文字的识别。接下来,我们将详细讲解这两个模块的使用方法及其区别。

Tesserocr模块

安装

在开始使用Tesserocr前,需要先安装Tesseract OCR引擎。在Ubuntu系统上,可以通过以下命令进行安装:

sudo apt-get install libleptonica-dev libtesseract-dev tesseract-ocr-dev

在Windows系统上,可以从Tesseract官网下载对应版本的安装文件进行安装。安装完成后,需要使用以下命令安装tesserocr模块:

pip install tesserocr

使用

基本使用

以下是一个基本的使用示例:

import tesserocr
from PIL import Image

# 打开图片
image = Image.open('test.png')

# 图片转换为灰度模式
image = image.convert('L')

# 获取文本
text = tesserocr.image_to_text(image)

print(text)

以上示例中,我们使用Image.open()方法打开一张图片,然后将其转换为灰度模式。接着,使用tesserocr.image_to_text()方法提取出图片中的文本。

调整参数

以下是一个调整了一些参数的示例:

import tesserocr
from PIL import Image

# 打开图片
image = Image.open('test.jpg')

# 图片转换为灰度模式
image = image.convert('L')

# 调整参数
api = tesserocr.PyTessBaseAPI()
api.SetVariable("tessedit_char_whitelist", "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
api.SetImage(image)

# 获取文本
text = api.GetUTF8Text()

print(text)

以上示例中,我们使用了api.SetVariable()方法,设定tesseract识别字符的白名单,只允许tesseract识别出0-9、大小写字母等字符,这可以帮助我们提高识别率。然后,我们使用tesserocr.PyTessBaseAPI()创建api对象,并将图片设置为输入。最后,使用api.GetUTF8Text()方法提取出图片中的文本。

Pytesseract模块

安装

在开始使用pytesseract前,需要先安装Tesseract OCR引擎。在Ubuntu系统上,可以通过以下命令进行安装:

sudo apt-get install libleptonica-dev libtesseract-dev tesseract-ocr-dev

在Windows系统上,可以从Tesseract官网下载对应版本的安装文件进行安装。安装完成后,需要使用以下命令安装pytesseract模块:

pip install pytesseract

使用

基本使用

以下是一个基本的使用示例:

import pytesseract
from PIL import Image

# 打开图片
image = Image.open('test.png')

# 图片转换为灰度模式
image = image.convert('L')

# 获取文本
text = pytesseract.image_to_string(image)

print(text)

以上示例中,我们使用Image.open()方法打开一张图片,然后将其转换为灰度模式。接着,使用pytesseract.image_to_string()方法提取出图片中的文本。

调整参数

以下是一个调整了一些参数的示例:

import pytesseract
from PIL import Image

# 打开图片
image = Image.open('test.jpg')

# 图片转换为灰度模式
image = image.convert('L')

# 调整参数
text = pytesseract.image_to_string(image, lang='eng', config='--psm 11 --oem 3 -c tessedit_char_whitelist=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ')

print(text)

以上示例中,我们使用了lang参数指定语言(默认是eng),config参数来设置参数,其中--psm表示Page segmentation mode,--oem表示OCR Engine Mode,tessedit_char_whitelist表示字符白名单。最后,使用pytesseract.image_to_string()方法提取出图片中的文本。

总结

tesserocr和pytesseract都是Python的OCR库,用于图片文字识别,本质上都是封装了Google Tesseract OCR引擎的Python API。它们的使用方法类似,但是在参数的设定上有所不同。总的来说,如果需要更加灵活的控制,建议使用tesserocr,如果对参数控制需求不高,则可以使用pytesseract。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:tesserocr与pytesseract模块的使用方法解析 - Python技术站

(0)
上一篇 2023年5月25日
下一篇 2023年5月25日

相关文章

  • 单点登录的三种方式和JWT的介绍与使用

    单点登录(Single Sign-On, SSO)是指在多个应用系统中,用户只需要登录一次,就可以访问所有相互信任的应用系统资源。 实现单点登录有三种方式: 接口集成方式 这种方式是指使用后端服务的方式进行用户认证,前端应用只需将用户凭证发送至后端服务进行认证,认证通过后返回相关的用户信息至前端。此方式需要在前后端分离场景中使用。 Token方式 这种方式是…

    人工智能概览 2023年5月25日
    00
  • OpenStack之虚机热迁移的代码详细解析

    OpenStack之虚机热迁移的代码详细解析 前言 OpenStack是一种可以用于构建私有云或公共云的开源软件平台。它通过各种不同的组件提供了丰富的云计算功能,其中之一便是虚机热迁移。 本文将探讨OpenStack中实现虚机热迁移的相关代码实现。 背景 虚机热迁移是指在虚拟化环境下,运行中的虚机不停机状态下无缝迁移至另一个主机,从而实现资源的动态负载均衡和…

    人工智能概论 2023年5月25日
    00
  • Python实现监控内存使用情况和代码执行时间

    Python实现监控内存使用情况和代码执行时间的攻略 Python是一种高级编程语言,可以编写各种应用程序。在编写Python应用程序时,考虑到监控内存使用情况和代码执行时间是很重要的。本文将介绍两种Python实现监控内存使用情况和代码执行时间的方法。 监控内存使用情况的方法 Python内置模块resource可以用于获取系统资源使用情况。下面是一个简单…

    人工智能概论 2023年5月25日
    00
  • 简单了解OpenCV是个什么东西

    OpenCV是一个开源的计算机视觉库,能支持多种计算机视觉和机器学习算法,同时可以在各种的操作系统平台上运行。它包含了大量的预先训练好的模型以及现成的功能函数,能够使用户方便快捷的构建基于计算机视觉的应用程序。 在使用OpenCV之前,需要确保电脑中已经安装了OpenCV库。如果还没有安装,可以按照以下步骤进行安装: 在Linux/Mac电脑中使用以下指令进…

    人工智能概览 2023年5月25日
    00
  • Django路由层如何获取正确的url

    Django框架的路由层负责将HTTP请求映射到相应的视图函数。在Web开发中,获取正确的URL是非常重要的,可以通过以下步骤实现。 1. 定义URL路由模式 在Django应用程序中,首先需要定义URL路由模式。这可以通过在应用程序的urls.py文件中定义来实现。路由模式通常由路径模式、视图函数和URL名称组成。例如,以下代码定义了一个使用正则表达式匹配…

    人工智能概览 2023年5月25日
    00
  • TensorFlow平台下Python实现神经网络

    下面是TensorFlow平台下Python实现神经网络的完整攻略: 1. 准备工作 在使用TensorFlow之前需要先安装TensorFlow,可以使用以下命令进行安装: pip install tensorflow==2.2.0 2. 数据准备 在使用神经网络之前需要准备好数据集,我们可以使用keras自带的数据集进行测试。 以下是使用keras导入m…

    人工智能概论 2023年5月25日
    00
  • 浅析在线影视点播巨头Netflix的信息处理架构

    浅析在线影视点播巨头Netflix的信息处理架构 1. Netflix的信息处理架构概述 Netflix作为一家在线影视点播巨头,它的信息处理架构是非常复杂和先进的。简单来说,Netflix的信息处理架构可以分为以下几个层次: 数据采集层:Netflix通过各种方式采集用户行为数据,例如服务器日志、用户访问记录和设备数据等。 实时流处理层:Netflix使用…

    人工智能概览 2023年5月25日
    00
  • Windows nginx安装教程及简单实践

    Windows Nginx安装教程及简单实践 安装Nginx 下载最新版本的Nginx for Windows,解压到需要安装的目录下。 打开cmd命令行,进入Nginx所在目录的子目录nginx-1.21.0,启动Nginx服务。 cd D:\nginx-1.21.0\ //(假设Nginx解压到了D盘) nginx.exe 如果提示端口被占用,可以修改N…

    人工智能概览 2023年5月25日
    00
合作推广
合作推广
分享本页
返回顶部