news 2026/8/2 23:04:26

Python中如何使用Tesseract?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python中如何使用Tesseract?

对中运用开展ocr得依循如下若干步骤: 其一, 实施安装, 以及安装ocr引擎;其二, 凭借来实施基本文本识别;其三, 借助相关库去进行图像预处理, 以此提升识别准确性;其四, 当处理诸如pdf这般复杂文档之际, 联合运用一些库;其五, 对配置选项予以优化, 进而提升识别成效。

我们来谈谈怎样于其中运用, 它作为一个格外强大的OCR(光学字符识别)引擎, 特定的支持致使它变得愈发强大, 于其中, 我们借助库来调用用于文本识别的它。

为何要予以使用呢, 其一, 它所具备的识别率相当之高, 尤其是在针对各类语言以及字体予以处理之际, 其二, 其是开源的, 这表明我们能够依据自身需求开展定制以及优化工作, 当然, 运用过程当中存在一些 , 例如需要对图像预处理加以处理进而提升识别的精准率, 以及处理有着复杂布局的文档。

让我们从安装开始吧。安装非常简单,只需要在命令行中运行:

pip install pytesseract

安装完成之后, 还得要保证你的系统上面已然安装了OCR引擎, 你能够从上面 获取安装包来进行安装, 或者是在大多数的Linux发行版之上运用包管理器去安装。

紧接着啦, 我们要去瞧瞧怎样运用实现基础的文本辨认。这儿存在着一档便捷的事例哟:

import pytesseract from PIL import Image # 打开图像文件 image = Image.open('example.png') # 使用pytesseract提取文本 text = pytesseract.image_to_string(image) # 打印提取的文本 print(text)

这个代码片段呈现出怎样从图像里提取文本的方式, 函数作为其重点部分, 它把图像转变成为文本字符串。

当然了, 于实际运用当中, 我们极有可能会碰到某些问题。比如说, 图像质量欠佳会对识别效果造成影响。在这样的情形之下, 我们能够运用库去开展一些预处理行为, 如调整一下图像的对比度以及亮度:

2026.2.0.1 Linux版

2026.对于那些有着需要指定版本来开展项目开发、运行以及调试需求的用户而言, 官方所供应的是2026.2.0.1版本安装包, 此版本为Linux版的2.0.1。

下载

from PIL import Image, ImageEnhance # 打开图像文件 image = Image.open('example.png') # 增强对比度 enhancer = ImageEnhance.Contrast(image) image = enhancer.enhance(2) # 增强亮度 enhancer = ImageEnhance.Brightness(image) image = enhancer.enhance(1.5) # 使用pytesseract提取文本 text = pytesseract.image_to_string(image) # 打印提取的文本 print(text)

这个例子呈现出怎样籍由调节图像的对比度以及亮度去提升OCR的准确性, 要留意的是, 预处理的参数得依照具体的图像来加以调整。

在实际开展的项目当中, 我们有可能会碰到这样的状况, 即需要去处理更为复杂的文档, 像是那种带有表格以及存在多列的PDF文件。针对这样的情形, 我们能够把库结合在一起使用, 将PDF转换成为图像, 随后再去进行OCR的处理:

import pytesseract from pdf2image import convert_from_path from PIL import Image # 将PDF转换为图像 pages = convert_from_path('example.pdf') for page in pages: # 使用pytesseract提取文本 text = pytesseract.image_to_string(page) print(text)

采用这个办法能够处理多页PDF文档, 可是这点需留意, PDF的布局状况有概率对OCR的准确程度形成影响。于这种情形下, 我们存在使用更具高级特性的工具的可能性, 像是去剖析PDF的布局方面的信息, 之后再开展OCR。

实施OCR操作之际, 存在着一些值得予以留意和关注的最佳实践情形。从首要方面来讲, 要保障图像所具备的分辨率能够达到足够高的水准, 如此这般将会对识别率产生显著的助推提升作用。紧接着, 存在着能够加以运用的配置选择项目, 凭借这些配置选择项目能够以此来对识别效果施展优化举措, 诸如明确规定语言种类、对页面分割模式予以调节改换等等。

import pytesseract # 指定语言为中文 custom_config = r'--oem 3 --psm 6 -l chi_sim' # 使用pytesseract提取文本 text = pytesseract.image_to_string(Image.open('example.png'), config=custom_config) print(text)

在这个例子当中, 我们明确指定了运用中文简体来实现识别, 而且采用了的OCR引擎模式3以及页面分割模式6。这些配置选项能够依据具体的需求予以调整。

我来讲讲, 最后, 我打算在使用期间分享一些经验。首先, 我对噪声敏感, 所以在开展OCR之前务必尽可能把图像里的噪声消除掉。其次, 针对复杂的文档, 也许会得综合运用多种工具, 像是运用来处理图像, 接着再运用来实施OCR。讲到最后, 其训练数据对於识别效果而言是非常重要的, 要是你需要识别特定领域的文本, 考量训练自己的模型。

整体而言, 它属于能实现文本识别的极为厉害的OCR工具, 借助其中的库能便利地开展文本识别工作, 然若想收获最佳成效, 就得将图像预热加工、配置完善以及最佳套路三者相互耦合一同运用, 但愿这些分享能够助力你更出色地运用其工具来开展OCR环节 句号。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/2 22:57:18

pydown高级技巧:自定义CSS与JavaScript打造个性化演示文稿

pydown高级技巧:自定义CSS与JavaScript打造个性化演示文稿 【免费下载链接】pydown An HTML5 presentation builder written by python 项目地址: https://gitcode.com/gh_mirrors/py/pydown pydown是一款基于Python的HTML5演示文稿构建工具,通过…

作者头像 李华
网站建设 2026/8/2 22:57:03

从入门到精通:Nodepay-Bot高级用户的挖矿策略与优化技巧

从入门到精通:Nodepay-Bot高级用户的挖矿策略与优化技巧 【免费下载链接】Nodepay-Bot Automate farming nodepay.ai with our auto bot! Farm supports multi-account, full automation, and an intuitive interface. 项目地址: https://gitcode.com/gh_mirrors/…

作者头像 李华
网站建设 2026/8/2 22:52:37

Elasticsearch内存配置实战:堆内堆外分配、性能调优与避坑指南

1. 项目概述:为什么Elasticsearch内存设置是性能的命门搞搜索和日志分析的朋友,对Elasticsearch(后面简称ES)肯定不陌生。这东西用起来爽,但调优起来,尤其是内存这块,绝对是新手和老手的分水岭。…

作者头像 李华
网站建设 2026/8/2 22:52:15

Python模块:内置模块itertools迭代工具全解析

Python模块:内置模块itertools迭代工具全解析一、开篇:迭代器的瑞士军刀 itertools是Python标准库中的"高性能迭代工具箱"——所有函数都用C实现,比手写的Python循环快得多。它提供了构建高效迭代管道的积木块:无限序列…

作者头像 李华
网站建设 2026/8/2 22:51:59

Python模块:虚拟环境venv创建与隔离项目依赖

Python模块:虚拟环境venv创建与隔离项目依赖一、开篇:每个项目一个"干净的房间" 想象你有两个项目:项目A需要Django 3.2,项目B需要Django 4.2。如果你把所有包都装在全局Python环境中,两个项目就会打架——这…

作者头像 李华