python 图片识别文字
要在 Python 中实现图片中的文字识别,通常使用的是 Tesseract OCR
,结合 Pillow
处理图像。以下是一个简易的实现步骤:
1. 安装所需库:
你需要安装以下库:
- Tesseract OCR 引擎:这是进行文字识别的核心工具。
- Pillow:用于图像处理的 Python 库。
- pytesseract:Python 对 Tesseract OCR 引擎的封装。
-
# 安装 Pillow pip install Pillow # 安装 pytesseract pip install pytesseract # 安装 Tesseract OCR 引擎 (系统层面) # 对于 MacOS 使用 brew brew install tesseract # 对于 Ubuntu sudo apt-get install tesseract-ocr # 对于 Windows,下载安装包: # https://github.com/tesseract-ocr/tesseract/wiki
2. Python 代码实现:
一旦你安装了上述工具,可以编写以下代码来识别图片中的文字。
-
from PIL import Image import pytesseract # 如果你是在 Windows 上,需要设置 Tesseract OCR 安装路径,例如: # pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe' # 打开图片 image = Image.open('path_to_your_image.jpg') # 使用 pytesseract 进行 OCR 文字识别 text = pytesseract.image_to_string(image) # 输出识别出的文字 print(text) 3. 可选的图像预处理 如果图片质量不佳,文字模糊,可能需要对图片进行一些预处理操作,如转为灰度图像、调整对比度等。 python 复制代码 from PIL import Image, ImageEnhance, ImageFilter # 打开图片 image = Image.open('path_to_your_image.jpg') # 图像预处理:转换为灰度图像,增强对比度 image = image.convert('L') enhancer = ImageEnhance.Contrast(image) image = enhancer.enhance(2) # 进行 OCR text = pytesseract.image_to_string(image) print(text) 4. 批量处理图片 如果你有一组图片需要处理,可以循环处理每一张图片。 python 复制代码 import os from PIL import Image import pytesseract # 图片文件夹路径 image_folder = 'path_to_your_image_folder' # 获取文件夹下所有图片 for filename in os.listdir(image_folder): if filename.endswith(('.png', '.jpg', '.jpeg')): img_path = os.path.join(image_folder, filename) image = Image.open(img_path) text = pytesseract.image_to_string(image) print(f"识别图片 {filename} 的文字: \n{text}\n") 这个方法可以高效地将图片中的文字提取出来。