【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系统中安装

相关推荐
硬件学长森哥3 小时前
Android影像基础--cameraAPI2核心流程
android·计算机视觉
深圳市快瞳科技有限公司4 小时前
小场景大市场:猫狗识别算法在宠物智能设备中的应用
算法·计算机视觉·宠物
AndrewHZ7 小时前
【图像处理基石】图像在频域处理和增强时,如何避免频谱混叠?
图像处理·计算机视觉·傅里叶分析·图像增强·频域处理·摩尔纹·频谱混叠
小王爱学人工智能10 小时前
OpenCV的阈值处理
人工智能·opencv·计算机视觉
湫兮之风11 小时前
OpenCV: Mat存储方式全解析-单通道、多通道内存布局详解
人工智能·opencv·计算机视觉
点云侠13 小时前
解决Visual Studio 2022编译工程速度慢的问题
开发语言·c++·ide·算法·计算机视觉·visual studio
爆改模型14 小时前
【ICCV2025】计算机视觉|即插即用|ESC:超越Transformer!即插即用ESC模块,显著提升图像超分辨率性能!
人工智能·计算机视觉·transformer
却道天凉_好个秋15 小时前
计算机视觉(十二):人工智能、机器学习与深度学习
人工智能·深度学习·机器学习·计算机视觉
豆浩宇15 小时前
Conda环境隔离和PyCharm配置,完美同时运行PaddlePaddle和PyTorch
人工智能·pytorch·算法·计算机视觉·pycharm·conda·paddlepaddle
AI人工智能+16 小时前
表格识别技术:通过计算机视觉和OCR,实现非结构化表格向结构化数据的转换,推动数字化转型。
人工智能·计算机视觉·ocr