python利用pytesseract 实现本地识别图片文字

针对“python利用pytesseract 实现本地识别图片文字”的完整攻略,我会提供以下内容:

简介

pytesseract是一个OCR(光学字符识别)库,它可用于将图像中的文本转换为可编辑文本格式,如txt、doc和pdf等。Tesseract是一个开源OCR引擎,它被Google开发并维护。

Python接口可供使用。它可以通过pip命令安装,并且Tesseract库需要先被安装,本地化安装方法请自行查找。

使用方式

在Python程序中,通过绑定pytesseract库及其参数,我们可以非常方便地实现本地图片中文本的识别。

示例代码如下:

import pytesseract
from PIL import Image

img = Image.open('test.png')
text = pytesseract.image_to_string(img)
print(text)

其中,我们需要先通过Pillow库中的Image打开图片文件,再使用pytesseract.image_to_string()方法识别其中的文本内容,最后打印输出。

参数调整

pytesseract提供了一些可选参数,来帮助我们实现更优秀的文字OCR识别效果。

首先,我们可以通过lang参数,设置OCR识别所使用的语言,示例如下:

text = pytesseract.image_to_string(img, lang='chi_sim')

其中,'chi_sim'代表简体中文,如果需要识别其他语言,需要更改参数。

其次,我们可以通过psm参数,设置OCR识别所依赖的页面分割模式,示例如下:

text = pytesseract.image_to_string(img, config='--psm 6')

其中,'--psm 6'代表块式文本(high-level)。

其他常见参数还包括:

  • oem参数,设置OCR识别引擎模式,取值一般为1、2、3、4,默认3
  • config参数,用来在命令行传递其他Tesseract扩展参数,例如突出文本边缘、二值化等
text = pytesseract.image_to_string(img, lang='chi_sim', config='--psm 6 --oem 1')

这里举了一个同时设置了lang、config和oem三个参数的示例。

示例说明

下面提供两个示例,分别为在Python中读取本地图片及在线图片的OCR识别示例。

本地图片OCR识别

示例代码如下:

import pytesseract
from PIL import Image

img_path = 'test.png'

with open(img_path, 'rb') as f:
    img = Image.open(f)
    text = pytesseract.image_to_string(img, lang='chi_sim', config='--psm 6')
    print(text)

其中,我们采用tolerate_ocr_errors=True参数,可以忽略OCR识别时出现的错误警告,从而避免因为某个字符无法被识别而导致代码报错。

在线图片OCR识别

示例代码如下:

import pytesseract
from PIL import Image
import requests
from io import BytesIO

img_url = 'https://i.imgur.com/MfEDeTE.png'
response = requests.get(img_url)
img = Image.open(BytesIO(response.content))

text = pytesseract.image_to_string(img, lang='chi_sim', config='--psm 6')
print(text)

在这个示例代码中,我们通过requests库下载了一张线上图片,然后转化为Image类型。在接下来的处理中,与本地图片识别示例相同。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python利用pytesseract 实现本地识别图片文字 - Python技术站

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

相关文章

  • Python免登录实现域名解析的示例详解

    Python免登录实现域名解析的示例详解 在本文中,我们将介绍如何使用Python免登录实现域名解析。我们将使用dnspython库来解析域名,并使用requests库发送HTTP请求。 步骤1:安装必要的库 在使用Python免登录实现域名解析之前,我们需要先安装必要的库: pip install dnspython requests 在上面的示例中,我们…

    python 2023年5月15日
    00
  • python+pyqt5实现24点小游戏

    一、介绍 24点小游戏是一种常见的数学游戏,要求玩家在给定的4个数字中选出任意3个数字,通过加减乘除的运算使得运算结果等于24。本文介绍如何使用Python和PyQt5框架实现24点小游戏。 二、实现步骤 安装PyQt5 在开始编写代码之前,需要安装PyQt5框架以便使用Qt Designer设计PyQt5窗口。安装方法: pip install PyQt5…

    python 2023年6月3日
    00
  • Python中声明只包含一个元素的元组数据方法

    当我们需要一个只包含一个元素的元组时,例如(1,),需要在元素后面加上逗号来使其成为元组而不是整数。 下面是Python中声明只包含一个元素的元组数据方法的完整攻略: 方法1:使用逗号在元素后面声明 在使用时,只需要在元素后面加上逗号即可声明一个只包含一个元素的元组。如下所示: my_tuple = (1,) print(type(my_tuple)) # …

    python 2023年5月13日
    00
  • PyQt5使用QTimer实现电子时钟

    下面我将详细介绍“PyQt5使用QTimer实现电子时钟”的攻略。 步骤 首先,我们需要导入PyQt5中的QTimer模块,以便使用其中的计时器函数。 from PyQt5.QtCore import QTimer 然后,我们需要在界面中添加一个label组件,以便用来显示电子时钟的时间。这里设置label的文本居中对齐,并设置字体大小和颜色。 self.l…

    python 2023年6月3日
    00
  • Jupyter Notebook运行代码无反应问题及解决方法

    Jupyter Notebook运行代码无反应问题及解决方法 Jupyter Notebook是一个非常流行的交互式计算环境,它可以帮助我们快速地编写和测试代码。然而,有时候我们会遇到Jupyter Notebook运行代码无反应的问题,这会影响我们的工作效率。本文将介绍Jupyter Notebook运行代码无反应问题的原因及解决方法。 问题原因 Jupy…

    python 2023年5月14日
    00
  • tkinter如何实现打开文件对话框并获取文件绝对路径

    下面是关于tkinter如何实现打开文件对话框并获取文件绝对路径的完整攻略。 1. 导入必要模块 在使用tkinter实现打开文件对话框之前,需要先导入tkinter和filedialog这两个模块。其中,tkinter模块是Python自带的GUI模块,而filedialog模块是用来打开文件对话框的工具包。 示例代码: import tkinter as…

    python 2023年6月13日
    00
  • Django框架HttpResponse和HttpRequest对象学习

    Django框架HttpResponse和HttpRequest对象学习攻略 1. Http请求过程 在了解HttpResponse和HttpRequest对象前,我们先了解一下Http请求过程。当用户在浏览器中输入网站的url时,浏览器会向服务器发送一个Http请求,服务器接收到请求后,会处理请求,并返回一个Http响应。响应中包含了网页的内容,浏览器接收…

    python 2023年6月2日
    00
  • python实现的批量分析xml标签中各个类别个数功能示例

    在本攻略中,我们将介绍如何使用Python实现批量分析XML标签中各个类别个数的功能。以下是一个完整攻略,包括两个示例。 步骤1:安装必要的库 首先,我们需要安装必要的库。我们将使用ElementTree库来解析XML文件。 以下是一个示例代码,演示如何使用pip安装ElementTree库: pip install elementtree 在上面的代码中,…

    python 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部