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

yizhihongxing

针对“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提供了便捷的工具实现对文件的批量编码转换,本文将介绍具体的操作方法及注意事项。 步骤 1. 安装chardet和iconv 我们将使用Python第三方库chardet实现文件编码探测,以确定文件的原编码,并…

    python 2023年5月20日
    00
  • python 文件查找及内容匹配方法

    下面是详细的攻略: Python文件查找及内容匹配方法 在Python中,我们可以使用os模块和re模块来查找文件并匹配文件内容。本文将介绍Python文件查找及内容匹配的方法,并提供两个示例说明。 文件查找 在Python中,我们可以使用os模块的walk函数来遍历目录中的所有文件,并使用fnmatch模块的fnmatch函数来匹配文件名。下面是一个示例,…

    python 2023年5月14日
    00
  • Python 字典(Dictionary)详细介绍

    Python 字典 (Dictionary) 详细介绍 什么是字典 在 Python 中,字典 (Dictionary) 是一种无序的键值对 (key-value pair) 集合。字典使用键来访问其对应的值,键和值可以是任意类型的数据。 创建字典 我们可以使用以下两种方式来创建一个字典。 直接使用大括号 我们可以使用大括号 {} 来创建一个空的字典,然后逐…

    python 2023年5月13日
    00
  • Python爬虫之网络请求

    Python爬虫之网络请求 在Python爬虫中,网络请求是获取网页数据的重要方式。本文将为您详细讲解Python爬虫之网络请求的整攻略,包括如使用requests库发送HTTP请求、如何处理HTTP响应、如何使用代理如何处理异常。过程中将提供两个示例说明。 使用requests库发送HTTP请求 requests是Python中一个常用的HTTP库,可以用…

    python 2023年5月14日
    00
  • Python Pygame实战之赛车游戏的实现

    Python Pygame实战之赛车游戏的实现攻略 前言 本文将介绍如何使用Python和PyGame创建一个简单的2D赛车游戏,该游戏包括基本的用户输入、游戏界面、碰撞检测和得分统计等功能。如果您对Python和PyGame已经有一定的了解,那么这个项目对于您来说是一个不错的练习机会。 准备工作 在开始实现游戏之前,我们需要安装并配置Python和PyGa…

    python 2023年6月3日
    00
  • 如何使用Python实现数据库中数据的模糊查询?

    以下是使用Python实现数据库中数据的模糊查询的完整攻略。 数据库中数据的模糊查询简介 在数据库中,模糊查询是指根据模糊条件检索的查询。在Python中,可以使用pymysql连接到MySQL数据库,并使用SELECT语句实现模糊查询。 步骤1:连接到数据库 在Python中,可以使用pymysql连接MySQL数据库。以下是连接到MySQL数据库的基本语…

    python 2023年5月12日
    00
  • 在Python上基于Markov链生成伪随机文本的教程

    生成伪随机文本的方法中原文本是输入,然后基于马尔科夫模型生成伪随机序列。 下面是在Python上使用Markov Chain实现生成伪随机文本的步骤: 步骤一:收集数据 首先,我们需要采集想要生成伪随机文本的数据。可以从一本书、一段文章、或者一个网站中收集。 步骤二:处理数据 将数据整理为可用于训练模型的格式。例如,如果您想基于单词生成文本,则需要将收集到的…

    python 2023年6月3日
    00
  • 使用 Python 合并多个格式一致的 Excel 文件(推荐)

    下面是使用Python合并多个格式一致的Excel文件的完整实例教程。 环境准备 在进行本例子之前,请确保已经安装 Python 和 Pandas 库。 步骤一:导入必要的库 在此之前,你需要了解 Pandas 模块。 Pandas 是一个数据分析的 Python 库, 它可以用来清洗、处理和分析数据。 import pandas as pd import …

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