用pytesseract进行OCR识别图片中的文字

首先在Github上下载简体中文训练文件
然后通过brew安装tesseract,把训练文件放入相应文件夹
再然后通过pip安装pytesseract即可运行
示例代码如下:

import pytesseract
from PIL import Image

image = Image.open('2.jpeg')
code = pytesseract.image_to_string(image, lang='chi_sim')
print(code)
### 使用FITZ和pytesseract实现PDF文件的文字提取与OCR识别 要使用FITZ(也称为PyMuPDF)和pytesseract实现PDF文件的文字提取与OCR识别,可以按照以下方法进行操作。FITZ库用于处理PDF文件并提取图片或文本内容,而pytesseract是一个基于Google Tesseract OCR引擎的Python封装库,用于从图像中提取文字。 以下是详细的实现方法: #### 1. 安装必要的库 在开始之前,需要确保安装了以下依赖库: - `fitz`(PyMuPDF) - `pytesseract` - `Pillow`(用于图像处理) 可以通过以下命令安装这些库: ```bash pip install PyMuPDF pytesseract pillow ``` 此外,还需要安装Tesseract OCR引擎。可以从其官方仓库下载并安装:[Tesseract GitHub](https://github.com/tesseract-ocr/tesseract)。安装完成后,需将Tesseract路径添加到系统环境变量中,或者直接在代码中指定路径。 #### 2. 实现代码 以下是一个完整的代码示例,展示如何结合FITZ和pytesseract实现PDF文件的文字提取与OCR识别: ```python import fitz # PyMuPDF from PIL import Image import pytesseract # 配置Tesseract路径(如果未添加到系统环境变量) pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe' def pdf_to_text(pdf_path): # 打开PDF文件 document = fitz.open(pdf_path) text_output = "" for page_num in range(len(document)): page = document.load_page(page_num) # 提取页面中的图片 images = page.get_images(full=True) for img_index, img in enumerate(images): xref = img[0] base_image = document.extract_image(xref) image_bytes = base_image["image"] image = Image.open(io.BytesIO(image_bytes)) # 使用pytesseract进行OCR识别 ocr_text = pytesseract.image_to_string(image) text_output += f"Page {page_num + 1}, Image {img_index + 1}:\n{ocr_text}\n" # 如果PDF页面包含可提取的文本,则直接提取 plain_text = page.get_text("text") if plain_text.strip(): text_output += f"Page {page_num + 1} Text:\n{plain_text}\n" return text_output # 示例调用 pdf_file = "example.pdf" result = pdf_to_text(pdf_file) print(result) ``` #### 3. 关键点解析 - **FITZ的功能**:FITZ库能够加载PDF文件,并提供方法提取页面中的图片和文本[^1]。 - **pytesseract的作用**:pytesseract负责将图片转换为可读的文字内容[^2]。 - **图片提取与OCR**:对于扫描版PDF文件,通常需要先提取图片,再通过OCR技术识别中的文字内容。 - **环境配置**:确保Tesseract OCR已正确安装并配置好路径,否则pytesseract将无法正常工作。 #### 4. 注意事项 - 如果PDF文件较大或包含大量图片,可能需要优化代码以提高性能。 - 对于复杂布局的PDF文件,可能需要额外的预处理步骤来提升OCR识别的准确性。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值