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

相关推荐
再__努力1点10 小时前
【68】颜色直方图详解与Python实现
开发语言·图像处理·人工智能·python·算法·计算机视觉
啊阿狸不会拉杆11 小时前
《数字图像处理》第 3 章 - 灰度变换与空间滤波
图像处理·人工智能·算法·计算机视觉·数字图像处理
翔云 OCR API13 小时前
API让文档信息“活”起来:通用文档识别接口-开发者文字识别API
前端·数据库·人工智能·mysql·ocr
CoovallyAIHub13 小时前
如何让AI的数据标注“火眼金睛”?人机协同才是可靠途径
深度学习·算法·计算机视觉
wa的一声哭了13 小时前
拉格朗日插值
人工智能·线性代数·算法·机器学习·计算机视觉·自然语言处理·矩阵
啊阿狸不会拉杆13 小时前
《数字图像处理》第2章-数字图像基础
图像处理·python·算法·计算机视觉·数字图像处理
硅谷秋水14 小时前
PhysX-Anything:从单张图像创建可用于模拟的物理 3D 资源
深度学习·机器学习·计算机视觉·3d·语言模型
CoovallyAIHub14 小时前
震后如何快速评估上万栋建筑?俄亥俄州立大学提出混合智能检测方案
深度学习·算法·计算机视觉
明月醉窗台14 小时前
Opencv 之 几个常见的对比度调整方法
人工智能·opencv·计算机视觉
Angelina_Jolie15 小时前
ICCV 2025 | 去模糊新范式!残差引导 + 图像金字塔,强噪声下核估计精度提升 77%,SOTA 到手
图像处理·人工智能·计算机视觉