python识别文字 opencv_使用Python,OpenCV或Tesseract的光学字符识别(OCR)

背景知识视频教程

计算机视觉:Python OCR和对象检测快速入门​viadean.comv2-16efe63e155dc8faa719467789fb1052_180x120.jpgOpenCV使用Python进行计算机视觉的完整指南 - 国外课栈​viadean.comv2-6c3c83cba1317d0dbae9eef938041dc7_180x120.jpg有效的Python - 国外课栈​viadean.comv2-a0ebdb4d09fffed6dee84d23d0a68846_ipico.jpg

OCR是将输入的,手写的或印刷的文本转换为机器编码的文本的自动过程,我们可以通过字符串变量来访问和操作该文本。

安装和配置Tesseract

步骤1:安装

为了使用Tesseract库,我们首先需要在我们的系统上安装它。

对于macOS用户,我们将使用Homebrew安装Tesseract:

$ brew install tesseract

如果您使用的是Ubuntu操作系统,只需使用apt-get安装Tesseract OCR:

$ sudo apt-get install tesseract-ocr

对于Windows,请查阅Tesseract文档,本文不建议将Windows用于计算机视觉开发。

步骤2:验证已安装Tesseract

要验证Tesseract是否已成功安装在您的计算机上,请执行以下命令:

$ tesseract -v

tesseract 3.05.00

leptonica-1.74.1

libjpeg 8d : libpng 1.6.29 : libtiff 4.0.7 : zlib 1.2.8

您应该看到Tesseract版本打印到屏幕上,以及Tesseract兼容的图像文件格式库列表。

如果出现错误:

-bash: tesseract: command not found

则Tesseract未正确安装在您的系统上。返回步骤1并检查错误。此外,您可能需要更新PATH变量(仅适用于高级用户)。

步骤3:测试Tesseract OCR

为了使Tesseract OCR获得合理的结果,您需要提供经过完全预处理的图像。

使用Tesseract时,我建议:

尽可能具有高分辨率和DPI用作输入图像。

应用阈值分割背景中的文本。

确保前景与背景尽可能清晰地分开(即没有像素化或字符变形)。

对输入图像应用文本偏斜校正以确保文本正确对齐。

偏离这些建议可能会导致错误的OCR结果。

现在,让我们将OCR应用于下图:

只需在终端中输入以下命令:

$ tesseract tesseract_inputs/example_01.png stdout

Warning in pixReadMemPng: work-around: writing to a temp file

Testing Tesseract OCR

Tesseract正确标识了“ Testing Tesseract OCR”,并将其打印在终端中。

Tesseract对OCR的局限性

几周前,我正在进行一个项目,以识别信用卡上的16位数字。

我很容易编写Python代码来对四组4位数字中的每一个进行本地化。

这是一个示例4位区域:

但是,当我尝试将Tesseract应用于下图时,结果令人不满意:

$ tesseract tesseract_inputs/example_04.png stdout digits

Warning in pixReadMemPng: work-around: writing to a temp file

5513

请注意,Tesseract是识别为5513的,而图像清楚地显示了5678。

不幸的是,这是限制Tesseract的一个很好的例子。 当我们从背景中分割出前景文本时,文本的像素化性质使Tesseract感到困惑。 Tesseract还可能没有接受过类似信用卡字体的培训。

Tesseract最适合用于建立文档处理管道,在其中扫描图像,对其进行预处理,然后再应用光学字符识别。

我们应该注意,Tesseract不是针对OCR的现成解决方案,它不能在所有(甚至大多数)图像处理和计算机视觉应用程序中使用。

为此,您需要应用特征提取技术,机器学习和深度学习。

Python使用Tesseract OCR

使用OpenCV和Python的信用卡OCR

使用OpenCV和Python的银行支票OCR

使用OpenCV和Python识别数字

源代码

使用Python,OpenCV或Tesseract的光学字符识别(OCR) - 国外课栈​viadean.comv2-6855ab78a751e8c07950d40a1d6511d7_180x120.jpg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值