您的位置:

Python pytesseract 全能OCR库

随着计算机视觉和深度学习技术的不断发展,光学字符识别(OCR)已经逐渐成为了一个重要的方向。Python pytesseract 是一个开源程序库,它提供了一种在图像或PDF中识别文本的简单方法。

一、安装

安装 pytesseract 程序库可以使用 pip 命令:

pip install pytesseract

在此之前,需要安装 pytesseract 依赖项 Tesseract OCR。可以在以下网址下载并安装:

https://github.com/UB-Mannheim/tesseract/wiki

二、基本用法

在安装了 pytesseract 并且下载并安装了 Tesseract OCR 后,就可以使用 pytesseract 识别图片中的文字了。下面是一个用例:

# 导入 pytesseract 库
import pytesseract
# 导入 Image 模块
from PIL import Image

# 打开图片
image = Image.open('example.png')

# 识别图片中的文字
text = pytesseract.image_to_string(image, lang='chi_sim')

# 打印出图片中的文字内容
print(text)

在上面的代码中,首先用 PIL 库中的 Image 模块打开了一张名为 ‘example.png’ 的图片。其次,利用 pytesseract 库中的 image_to_string() 函数,将图片中的文字转化为字符串。最后,打印出文字内容。

三、设置参数

在实际使用中, pytesseract 库提供了许多有用的参数,用于优化识别功能。以下是一些常见的参数:

  • lang: 用于指定 OCR engine 使用的语言。例如 ‘eng’ 表示英文,‘chi_sim’ 表示简体中文。
  • config: 用于设置 Tesseract OCR 的参数。比如 ‘--psm 10’ 将告诉 Tesseract OCR 以单字符模式运行。
  • psm: 用于设置 Tesseract OCR 的页面分割模式。在不同的图片中,OCR 接受的文本量往往不同,通过设置分割模式,可以改善识别图片中文字的质量。

下面是一个用例,它展示了如何使用以上的参数:

# 导入 pytesseract 库
import pytesseract
# 导入 Image 模块
from PIL import Image

# 打开图片
image = Image.open('example2.png')

# 设置参数
custom_config = r'--psm 10'

# 识别图片中的文字
text = pytesseract.image_to_string(image, lang='chi_sim', config=custom_config)

# 打印出图片中的文字内容
print(text)

在上面的代码中,使用了 ‘--psm 10’ 这个 Tesseract OCR 参数,以单字符模式运行识别程序。这将改善 OCR 识别文本的准确性。

四、语言支持

pytesseract 支持众多的语言,其中包括繁体中文,简体中文,英语,法语,德语,西班牙语等。为了使用这些语言,需要在 image_to_string() 函数中设置 lang 参数。以下是一些常见语言的设置:

# 使用中文 OCR
text = pytesseract.image_to_string(img, lang='chs')

# 使用英文 OCR
text = pytesseract.image_to_string(img, lang='eng')

# 使用法语 OCR
text = pytesseract.image_to_string(img, lang='fra')

# 使用德语 OCR
text = pytesseract.image_to_string(img, lang='deu')

# 使用西班牙语 OCR
text = pytesseract.image_to_string(img, lang='spa')

五、总结

Python pytesseract 库为开发者提供了一个强大的 OCR 引擎,并帮助将 OCR 技术应用于 Python 中。通过设置参数和引入不同语言,可以更好的适应不同的 OCR 识别场景。因此,它成为很多开发者首选的 OCR 库。