【OCR】实战使用 - ocr 识别图片中的文字

实战使用 - ocr 识别图片中的文字

在Python中,OCR(Optical Character Recognition,光学字符识别)通常使用一些开源库来实现,如 pytesseract、Tesseract、PIL(Python Imaging Library)等。以下是一个基本的示例,说明如何使用pytesseract和PIL库来识别图片中的文字:

python 复制代码
import pytesseract
from PIL import Image

# 打开图片文件
image = Image.open('your_image_file_path.jpg')

# 将图片转换为灰度图像以提高识别效果
gray_image = image.convert('L')

# 使用pytesseract进行文字识别
text = pytesseract.image_to_string(gray_image)

# 打印识别出的文字
print(text)

# 如果你还需要保存处理后的图像,可以使用以下代码:
gray_image.save('processed_image.png')

在这个示例中:

  1. 首先导入所需的库。
  2. 使用Image.open()函数打开图片文件。
  3. 使用convert()函数将图片转换为灰度图像,这有助于提高OCR的识别准确率。
  4. 使用pytesseract.image_to_string()函数对图像进行文字识别,并将结果存储在text变量中。
  5. 打印识别出的文字。
  6. 如果需要保存处理后的图像(这里是灰度图像),可以使用save()函数。

注意:

  • 确保已经安装了Tesseract OCR引擎以及相关的语言数据包。你可以通过以下命令安装Tesseract(假设你已经安装了Homebrew):
bash 复制代码
brew install tesseract
  • 安装 pytesseract 库:
python 复制代码
pip install pytesseract
  • 根据你的系统和Tesseract的安装位置,可能需要在使用pytesseract时指定Tesseract的路径。
  • Tesseract的识别效果可能会受到图片质量、文字清晰度、字体类型和大小等因素的影响。对于复杂的图像或特定类型的文本,可能需要进行额外的预处理步骤或使用更高级的OCR技术。
    设置识别文字的语言
    在使用Tesseract OCR进行文字识别时,你可以通过以下方式设置识别的语言:
python 复制代码
import pytesseract

# 设置识别语言为中文(简体)
pytesseract.pytesseract.tesseract_cmd = '/usr/bin/tesseract'  # 如果需要指定Tesseract路径
language = 'chi_sim'  # 中文(简体)的语言代码

# 打开图片文件
image = Image.open('your_image_file_path.jpg')

# 将图片转换为灰度图像以提高识别效果
gray_image = image.convert('L')

# 使用pytesseract进行文字识别,同时指定识别语言
text = pytesseract.image_to_string(gray_image, lang=language)

# 打印识别出的文字
print(text)

在这个示例中,我们设置了识别语言为中文(简体),语言代码为chi_sim。你需要根据你想要识别的语言来更改这个代码。

以下是一些常见语言的Tesseract语言代码:

  • 英语:eng
  • 简体中文:chi_sim
  • 繁体中文:chi_tra
  • 法语:fra
  • 德语:deu
  • 日语:jpn
  • 韩语:kor

如果你需要识别的语言不在这个列表中,你可以通过运行Tesseract命令行工具并输入tesseract --list-langs来查看所有支持的语言。

请注意,为了识别特定语言的文字,你需要在你的系统上安装相应的Tesseract语言数据包。这些数据包通常可以通过Tesseract的安装程序或者单独下载安装。

如果你不知道如何安装Tesseract语言数据包,可以参考我之前的文章:
【OCR】 - Tesseract OCR在mac系统中安装
【OCR】 - Tesseract OCR在Windows系统中安装

相关推荐
东集Seuic1 小时前
食品标签新规 GB 7718-2025 倒计时:产线“首件检验”如何用东集小码哥CRUISE Ge2-M跑通 OCR 智能核对?
大数据·人工智能·ocr
再一次等风来1 小时前
YOLO26 实测记录:从模型下载、预测验证到 ONNX Runtime 推理部署
yolo·计算机视觉·onnx·yolo26
大奎帝国1 小时前
Segearth-R2-02
人工智能·机器学习·计算机视觉
大奎帝国3 小时前
Segearth-R2-03
深度学习·机器学习·计算机视觉
YOLO数据集集合3 小时前
无人机航拍RGBT双模态行人检测数据集 | 可见光红外对齐 低空小目标检测 多模态计算机视觉基准数据
人工智能·深度学习·目标检测·计算机视觉·无人机
jay神3 小时前
基于 YOLOv8 + CRNN 的车牌识别系统
深度学习·yolo·目标检测·计算机视觉·车牌识别
装不满的克莱因瓶3 小时前
掌握基于YOLO v5实现车牌目标检测任务的完整流程——从数据到部署的工业级实践
人工智能·python·深度学习·yolo·目标检测·计算机视觉·目标跟踪
小鹏linux3 小时前
鸿蒙PC迁移:Tesseract OCR C++ 三方库鸿蒙适配全记录
c++·ocr·harmonyos
大奎帝国4 小时前
Segearth-r2-05
计算机视觉·cv
奔袭的算法工程师4 小时前
论文解读--Sparse4D v3: Advancing End-to-End 3D Detection and Tracking
人工智能·目标检测·计算机视觉·自动驾驶·信号处理