Python pytesseract【OCR引擎库】 简介

想全面了解DeepSeek的看过来 【包邮】DeepSeek全攻略 人人需要的AI通识课 零基础掌握DeepSeek的实用操作手册指南【限量作者亲笔签名版售完即止】

玩转DeepSeek这本就够了 【自营包邮】DeepSeek实战指南 deepseek从入门到精通实用操作指南现代科技科普读物AI普及知识读物人工智能使用教程中小学读物京东超级618

Python初学者的入门教程 动手学深度学习 PyTorch版 李沐和阿斯顿·张等强强联合之作!机器学习、深度学习、AI领域重磅教程! deepseek机器学习(异步图书出品)

程序员要最先成为AI的主人 AI高手速成 DeepSeek让你工作变轻松 deepseek从入门到精通实战指南人工智能 异步图书出品


pytesseract 是一个 Python 封装库,用于调用 Google 的 Tesseract-OCR 引擎,实现光学字符识别(OCR)功能。它允许开发者直接从 Python 中提取图像中的文字内容,支持多种语言(包括中文)。


核心特点

  1. 跨平台支持
    Windows/macOS/Linux 均可使用。
  2. 多语言识别
    支持 100+ 种语言(需安装对应语言包)。
  3. 简单易用
    只需几行代码即可完成 OCR 识别。
  4. 与 PIL/Pillow/OpenCV 兼容
    可直接处理常见的图像对象。

安装步骤

1. 安装 Tesseract OCR 引擎
  • Windows
    下载安装程序:UB-Mannheim/tesseract
  • macOS
    brew install tesseract
    
  • Linux (Debian/Ubuntu)
    sudo apt install tesseract-ocr
    
2. 安装语言包(以中文为例)
# Linux
sudo apt install tesseract-ocr-chi-sim  # 简体中文
sudo apt install tesseract-ocr-chi-tra  # 繁体中文# macOS/Windows 需在安装时勾选或手动下载语言包
3. 安装 Python 库
pip install pytesseract pillow

基础用法示例

示例 1:识别图像中的文字
from PIL import Image
import pytesseract# 设置 Tesseract 路径(Windows 可能需要)
# pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'# 打开图像并识别
image = Image.open("text_image.png")
text = pytesseract.image_to_string(image, lang='chi_sim')  # 使用简体中文print("识别结果:")
print(text)
示例 2:识别 OpenCV 处理的图像
import cv2
import pytesseract# 读取图像 + 灰度化
img = cv2.imread("text_image.png")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# OCR 识别
text = pytesseract.image_to_string(gray, lang='eng+chi_sim')  # 中英文混合
print(text)

高级功能

1. 获取文字位置与置信度
from PIL import Image
import pytesseractimage = Image.open("text_image.png")
data = pytesseract.image_to_data(image, lang='eng', output_type=pytesseract.Output.DICT)# 打印每个检测到的单词信息
for i in range(len(data['text'])):if data['text'][i].strip():print(f"文本: {data['text'][i]}")print(f"位置: (x={data['left'][i]}, y={data['top'][i]})")print(f"置信度: {data['conf'][i]}\n")
2. 识别多语言混合文本
text = pytesseract.image_to_string(image, lang='eng+chi_sim+jpn')  # 中英日混合
3. 调整 OCR 参数
# 配置参数示例
config = r'--oem 3 --psm 6 -c preserve_interword_spaces=1'
text = pytesseract.image_to_string(image, config=config)
  • oem: OCR 引擎模式(0~3,推荐 3)
  • psm: 页面分割模式(常用值):
    • 3 = 自动分页(默认)
    • 6 = 假设为统一文本块
    • 7 = 单行文本

图像预处理技巧

提高识别准确率的常用预处理方法:

import cv2img = cv2.imread("text_image.png")# 1. 灰度化
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 2. 二值化
_, thresh = cv2.threshold(gray, 150, 255, cv2.THRESH_BINARY)# 3. 降噪
denoised = cv2.fastNlMeansDenoising(thresh, h=10)# 4. 识别处理后的图像
text = pytesseract.image_to_string(denoised, lang='chi_sim')

常见问题解决

  1. 路径错误(Windows):
    取消注释并设置 tesseract_cmd 路径:

    pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
    
  2. 语言包缺失
    下载语言包(.traineddata 文件)放入 tessdata 目录(通常在 Tesseract 安装路径下)。

  3. 识别率低

    • 对图像进行预处理(灰度化/二值化/降噪)
    • 调整 psmoem 参数
    • 使用更高分辨率的清晰图像

应用场景

  • 文档扫描件文字提取
  • 验证码识别(简单类型)
  • 车牌识别
  • 图像中的多语言翻译
  • 自动化数据录入

通过结合 OpenCV 进行图像预处理,pytesseract 能显著提升复杂场景下的 OCR 准确率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/88124.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/88124.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu安装postman教程并中文汉化详细教程

一、下载postman安装包 通过网盘分享的文件:Postman-linux-x64-8.7.0.tar.gz 链接: https://pan.baidu.com/s/10WYeguDJlK85cKJ6ptX01w?pwd=xqkh 提取码: xqkh 二、解压到/opt目录 tar -zxvf Postman-linux-x64-8.7.0.tar.gz如果子用户没有/opt权限,可以给子用户赋予/opt的…

《垒球知识科普》垒球世界纪录·垒球1号位

奥运垒球冠军记录 历届冠军榜 1996亚特兰大奥运会 冠军:美国队 ⚡ 首届奥运垒球赛,美国主场3战全胜夺冠! 1996 Atlanta Olympics Champion: USA ⚡ Dominated all 3 games in first Olympic softball event 2000悉尼奥运会 冠军&#…

通信网络编程3.0——JAVA

主要添加了私聊功能 1服务器类定义与成员变量 public class ChatServer {int port 6666;// 定义服务器端口号为 6666ServerSocket ss;// 定义一个 ServerSocket 对象用于监听客户端连接//List<Socket> clientSockets new ArrayList<>();// 定义一个列表用于存储…

RediSearch `FT.CREATE` 完全参数指南 HASH/JSON 双写实战

1、索引与 Schema 速概 索引 (index) —— 倒排、前缀、向量、Geo … 元数据集合Schema —— 索引蓝图&#xff1a;定义字段、类型、权重、排序及存储策略FT.CREATE —— 创建索引命令&#xff0c;分「索引级参数」和「字段级参数」两层 2 、FT.CREATE 语法模板 FT.CREATE &…

QT学习教程(三十七)

系统繁忙时的响应&#xff08;Staying Responsive During Intensive Processing&#xff09; 当我们调用QApplication::exec()时&#xff0c;Qt 就开始了事件循环。启动时&#xff0c;Qt 发出显示和绘制事件&#xff0c;把控件显示出来。然后&#xff0c;事件循环就开始了&…

hot100 -- 17.技巧

1.多数元素 问题&#xff1a; 给定一个大小为 n 的数组 nums &#xff0c;返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的&#xff0c;并且给定的数组总是存在多数元素。 方法1&#xff1a; 哈希表 实时判断&#xff…

算法第39天| 打家劫舍 1、2、3

198. 打家劫舍 题目 思路与解法 class Solution { public:int rob(vector<int>& nums) {// dp数组含义&#xff1a;// 考虑下标i&#xff08;包括i&#xff09;以内的房屋&#xff0c;最多可以偷窃的金额为dp[i]if (nums.size() 0) return 0;if (nums.size() 1)…

车载CAN总线数据采集与故障诊断装置设计与实现

车载CAN总线数据采集与故障诊断装置设计与实现 链接:1.6W字 [下载]摘要1.1 研究背景1.2 研究意义(1)技术提升:推动CAN总线诊断的智能化与实时性(2)经济价值:降低诊断成本与维修时间(3)安全与标准化:促进车联网数据安全体系建设社会效益1.3 国内外研究现状1.3.1 国外研…

布瑞琳BRANEW:高端洗护领航者,铸就品质生活新典范

近日,布瑞琳BRANEW,这一中国高端洗护行业的领军品牌,再次凭借其卓越的服务品质、创新的经营模式以及对行业标准的深度推动,成为市场瞩目的焦点。作为北京2022年冬奥会和残奥会的商业服务保障单位,布瑞琳不仅展现了其无与伦比的服务能力,更在国际舞台上彰显了品牌的非凡影响力。…

AWS服务器扩充硬盘

1、在控制台上将需要扩充的硬盘增加空间 将硬盘大小由原来的50G升级到200G 2、登录所挂载的服务器 1&#xff09;查看硬盘分区情况 adminip-172-31-121-13:~$ sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS nvme0n1 259:0 0 200G 0 disk ├─nv…

嵌入式自学第四十二天

PWM:脉冲宽度调制&#xff0c;调节电压为方波。关键参数&#xff1a;占空比、周期。 UART&#xff1a;通用异步收发器。 参与通信的设备&#xff1a;主机host 通信的本质&#xff1a;数据的传递。 通信方式&#xff1a; 单工&#xff1a;只能单向传递 半双工&#xff1a;双向…

人工智能如何重塑教育体系:个性化学习的新时代

&#x1f4dd;个人主页&#x1f339;&#xff1a;慌ZHANG-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 一、引言&#xff1a;教育的“智能革命”正在发生 教育作为人类社会发展的基石&#xff0c;始终紧随技术进步不断演化。从印刷术带来知识…

【云原生】基础篇

​一、云原生 1.1 本质与核心技术体系​ 云原生&#xff08;Cloud Native&#xff09;是以容器化、微服务、声明式API和动态编排为核心的架构范式&#xff0c;旨在最大化利用云的弹性、可观测性和自动化能力。其技术栈分层如下&#xff1a; ​1.2、云原生核心技术栈​ ​层级…

实时反欺诈:基于 Spring Boot 与 Flink 构建信用卡风控系统

在金融科技飞速发展的今天&#xff0c;信用卡欺诈手段日益高明和快速。传统的基于批处理的事后分析模式已难以应对实时性要求极高的欺诈场景。本文将详细介绍如何利用 Spring Boot 和 Apache Flink 这对强大的组合&#xff0c;构建一个高性能、可扩展的实时信用卡反欺诈系统。 …

通过apache共享文件

有时候&#xff0c;vmware虚拟机的vmware tools总是安装失败&#xff0c;这样就不能在虚拟机和主机之间共享文件。此时可以利用apache通过文件上传和下载共享文件。 通过下面的php文件&#xff0c;虚拟机作为客户端访问此php&#xff0c;可以在虚拟机和主机之间共享文件。当然…

Maven生命周期,测试

测试 Junit入门 单元测试 单元测试&#xff1a;就是针对最小的功能单元(方法)&#xff0c;编写测试代码对其正确性进行测试。 JUnit&#xff1a;最流行的Java测试框架之一&#xff0c;提供了一些功能&#xff0c;方便程序进行单元测试&#xff08;第三方公司提供&#xff09…

H5调试工具vconsole和Eruda对比

VConsole与Eruda对比分析 VConsole和Eruda是两款主流的移动端JavaScript调试工具&#xff0c;它们在功能定位、使用场景和技术实现上有诸多差异。以下从多个维度进行对比&#xff0c;帮助你选择更适合的工具&#xff1a; 一、核心功能对比 功能维度VConsoleEruda基础日志输出…

Java经典编程题

题目 1&#xff1a;斐波那契数列 题目要求&#xff1a;编写一个方法&#xff0c;输入正整数n&#xff0c;输出斐波那契数列的第n项。斐波那契数列的定义是&#xff1a;F(0)0&#xff0c;F(1)1, 当n > 1时&#xff0c;F(n)F(n - 1)F(n - 2)。 答案&#xff1a; public cla…

BUG调试案例五十:“低级”设计BUG案例篇(持续更新中.........)

引言 回头看这些年硬件路,总有一些“低级Bug”一次次地在给我上课。它们不是复杂的架构设计,不是玄妙的信号完整性问题,而是最基础、最应该避免、却又最容易忽略的小细节。 每一次Bug的背后,都是教训,有的甚至让整个项目差点“翻车”。写下这篇文章记录那些“看似简单实…

DeepSeek中的提示库及其用法示例

《DEEPSEEK原生应用与智能体开发实践 图书》【摘要 书评 试读】- 京东图书 为了深入探索DeepSeek提示词样例的丰富内涵&#xff0c;充分挖掘其背后潜藏的无限可能&#xff0c;同时致力于为用户打造更为卓越、便捷且高效的使用体验&#xff0c;DeepSeek官网的API文档匠心独运地…