3

简介

在最近的项目中有一个新的需求,之前在进行图像设别文字是基于ppocrLabel进行设别,由于ppocrLabel有一些小毛病,现在由web端进行图像的标,这时候就需要python程序进行对图像对文字的设别从而实现我们的需求。

image.png

设别的结果:开票日期

Tesseract

Tesseract 是一个开源的 OCR 引擎,由 Google 开发并维护。它能够识别多种语言的文本,并且在性能和准确性方面表现优异。Tesseract 可以处理各种图像格式,包括 JPG、PNG、TIFF 等,并支持多种操作系统,如 Windows、Linux、macOS 等。

安装 Tesseract

在开始之前,我们首先需要安装 Tesseract。当前我只在 macOS 上进行安装,其他环境没有进行测试,使用 Homebrew 进行安装:

brew install tesseract

image.png

注意点,当前下载包含“eng”、“osd”和“snum”语言数据文件。如果需要其他支持需要重新下载语言包。

brew install tesseract-lang

这里我之前已经安装过了,所有当前我使用的reinstall

image.png

Python 代码示例

在进行图片设别文字时,我需要再额外下载2个库

pip install pytesseract
pip install pillow
  • Python 和 Tesseract 进行图像文字识别。我们将使用 pytesseract 库来与 Tesseract 引擎交互。
  • Pillow 提供了一系列功能强大的图像处理工具,包括打开、保存、创建、编辑图像,以及图像格式的转换等。它是许多 Python 项目中首选的图像处理库。
import json
from PIL import Image
import pytesseract

def image_text(image_path):
    image = Image.open(image_path)
    text = pytesseract.image_to_string(image)
    print(text)

if __name__ == "__main__":
    imagePath = '/Users/kexiaobin/Desktop/image-resource/cjx01_20240413_10/cjx01_20240413_13/rec/crop_img/cjy01_20240411_1_crop_3.jpg'
    image_text(imagePath)

image.png

注意点:如果不指定语言的话,默认设别图像的语言是英文

text = pytesseract.image_to_string(image)
print('设别结果:' + text)

image.png

如果想设别中文的话,必须自己设置设别的语言类型,可以通过命令查看安装的语言包

 tesseract --list-langs

image.png

 text = pytesseract.image_to_string(image, lang='chi_sim')
 print('设别结果:' + text)

image.png


kexb
474 声望15 粉丝