如何使用tesseract从linux命令行执行ocr

您可以使用Tesseract OCR引擎在Linux命令行上从图像中提取文本。它快速、准确,可以使用大约100种语言。下面是如何使用它。...

您可以使用Tesseract OCR引擎在Linux命令行上从图像中提取文本。它快速、准确,可以使用大约100种语言。下面是如何使用它。

光学字符识别

光学字符识别(OCR)是一种在图像中观察和查找单词,然后将其提取为可编辑文本的能力。对于人类来说,这项简单的任务对于计算机来说是非常困难的。至少可以说,早期的努力是笨拙的。如果字体或大小不符合OCR软件的要求,计算机常常会感到困惑。

尽管如此,这一领域的先驱者仍然受到高度尊重。如果您丢失了文档的电子副本,但仍有打印版本,OCR可以重新创建可编辑的电子版本。即使结果不是100%准确,这仍然是一个伟大的节省时间。

手工整理一下,你就能把文件拿回来了。人们原谅了它所犯的错误,因为他们理解OCR软件包所面临的任务的复杂性。另外,这比重新输入整个文档要好。

从那以后情况有了很大改善。由Hewlett-Packard编写的Tesseract OCR应用程序始于上世纪80年代,是一种商业应用程序。它在2005年是开源的,现在得到了谷歌的支持。它具有多语言功能,被认为是最准确的OCR系统之一,您可以****它。

安装tesseract ocr

要在Ubuntu上安装Tesseract OCR,请使用以下命令:

sudo apt-get install tesseract-ocr

007Ys3FFgy1gp4kp6x35xj30hy01ljr9

在Fedora上,命令是:

sudo dnf install tesseract

007Ys3FFgy1gp4kp8yl7sj30hy01l0si

在Manjaro上,您需要键入:

sudo pacman -Syu tesseract

如何使用tesseract从linux命令行执行ocr

使用tesseract ocr

我们将对Tesseract OCR提出一系列挑战。我们的第一张包含文本的图像是从通用数据保护条例背诵63中提取的。让我们看看OCR是否能读到这个(保持清醒)。

如何使用tesseract从linux命令行执行ocr

这是一个棘手的图像,因为每个句子都以一个微弱的上标数字开头,这在立法文件中很典型。

我们需要给tesseract命令一些信息,包括:

  • 要处理的图像文件的名称。
  • 它将创建用于保存提取文本的文本文件的名称。我们不必提供文件扩展名(它总是.txt)。如果已存在同名文件,则会覆盖该文件。
  • 我们可以使用--dpi选项告诉tesseract图像的每英寸点数(dpi)分辨率是多少。如果我们不提供dpi值,tesseract将尝试找出它。

我们的图像文件名为“背诵63.png”,其分辨率为150 dpi。我们要从中创建一个文本文件,名为“朗诵.txt.”

我们的命令是这样的:

tesseract recital-63.png recital --dpi 150

如何使用tesseract从linux命令行执行ocr

结果很好。唯一的问题是上标太模糊,无**确阅读。一个好的图像质量是至关重要的,以获得良好的效果。

如何使用tesseract从linux命令行执行ocr

tesseract将上标数字解释为引号()和度数符号(°),但实际文本已被完美地提取(图像右侧必须修剪以适应此处)。

最后一个字符是一个十六进制值为0x0C的字节,这是一个回车符。

下面是另一张图片,文字大小不同,粗体和斜体都有。

如何使用tesseract从linux命令行执行ocr

此文件的名称为“粗体”-斜体.png“我们要创建一个名为”粗体.txt所以我们的命令是:

tesseract bold-italic.png bold --dpi 150

如何使用tesseract从linux命令行执行ocr

这一个没有造成任何问题,文本被完美地提取出来。

如何使用tesseract从linux命令行执行ocr

使用不同的语言

Tesseract OCR支持大约100种语言。要使用一种语言,必须先安装它。当您在列表中找到要使用的语言时,请注意其缩写。我们将安装对威尔士的支持。它的缩写是“cym”,是“Cymru”的缩写,意思是威尔士语。

安装包名为“tesseract ocr-”,末尾标记了语言缩写。要在Ubuntu中安装威尔士语文件,我们将使用:

sudo apt-get install tesseract-ocr-cym

如何使用tesseract从linux命令行执行ocr

下面是带有文本的图像。这是威尔士国歌的第一节。

如何使用tesseract从linux命令行执行ocr

让我们看看Tesseract OCR是否能胜任这个挑战。我们将使用-l(语言)选项让tesseract知道我们要使用的语言:

tesseract hen-wlad-fy-nhadau.png anthem -l cym --dpi 150

如何使用tesseract从linux命令行执行ocr

tesseract处理得非常完美,如下面提取的文本所示。天哪,特塞拉特OCR。

如何使用tesseract从linux命令行执行ocr

如果文档包含两种或两种以上的语言(例如从威尔士语到英语的词典),可以使用加号(+)告诉tesseract添加另一种语言,如下所示:

tesseract image.png textfile -l eng+cym+fra

在PDF中使用tesseract ocr

tesseract命令设计用于处理图像文件,但它无法读取PDF。但是,如果需要从PDF中提取文本,可以先使用另一个实用程序生成一组图像。单个图像将表示PDF的单个页面。

您需要的pdftppm实用程序应该已经安装在您的Linux计算机上。我们将使用的PDF作为示例,它是Alan Turing关于人工智能的开创性论文“计算机器和智能”的副本

如何使用tesseract从linux命令行执行ocr

我们使用-png选项指定要创建png文件。我们的PDF文件名是“图灵.pdf”我们将图像文件称为“turing-01.png”、“turing-02.png”等等:

pdftoppm -png turing.pdf turing

如何使用tesseract从linux命令行执行ocr

要使用单个命令对每个图像文件运行tesseract,我们需要使用for循环。对于我们的每一个“图灵”-nn.png格式,文件我们运行tesseract,并创建一个名为“text-”的文本文件加上“turing nn”作为图像文件名的一部分:

for i in turing-??.png; do tesseract "$i" "text-$i" -l eng; done;

如何使用tesseract从linux命令行执行ocr

要将所有文本文件合并为一个文本文件,我们可以使用cat:

cat text-turing* > complete.txt

如何使用tesseract从linux命令行执行ocr

那,怎么办?很好,你可以看到下面的。不过,第一页看起来很有挑战性。它有不同的文字样式和大小,装饰。页面右边缘还有一个垂直的“水印”。

但是,输出接近原始值。显然,格式已丢失,但文本是正确的。

如何使用tesseract从linux命令行执行ocr

垂直水印在页面底部被转录成一行乱码。文本太小,tesseract无法准确阅读,但很容易找到并删除它。最糟糕的结果是每行末尾都出现了错误的字符。

奇怪的是,在第二页的问题和答案列表开始的单个字母被忽略了。PDF中的部分如下所示。

如何使用tesseract从linux命令行执行ocr

正如您在下面看到的,问题仍然存在,但是每行开头的“Q”和“A”都丢失了。

如何使用tesseract从linux命令行执行ocr

图表也不会被正确转录。让我们看看当我们试图从图灵PDF中提取下面所示的内容时会发生什么。

如何使用tesseract从linux命令行执行ocr

正如您在下面的结果中看到的,字符被读取了,但是图表的格式丢失了。

如何使用tesseract从linux命令行执行ocr

再次,tesseract与小尺寸的下标作斗争,它们被错误地呈现。

不过,公平地说,这仍然是一个好结果。我们无法提取直截了当的文本,但后来,故意选择了这个示例,因为它提出了一个挑战。

当你需要的时候,一个很好的解决方案

OCR不是你每天都需要使用的东西。然而,当需要的时候,很高兴知道你有一个最好的OCR引擎在你的支配之下。

  • 发表于 2021-04-01 21:39
  • 阅读 ( 310 )
  • 分类:互联网

你可能感兴趣的文章

使用以下技巧和技巧成为linux命令行高手

... 如何掌握linux命令行:最后的想法 ...

  • 发布于 2021-03-12 10:19
  • 阅读 ( 273 )

如何用ssh远程管理linux服务器

...。它之所以成为远程服务器管理的首选是有原因的。学习如何通过SSH远程管理Linux服务器,从连接到安装软件和文件传输。 ...

  • 发布于 2021-03-15 17:05
  • 阅读 ( 494 )

使用linux命令行安装硬盘和分区

如果您希望更多地使用Linux终端,那么学习如何手动装载和卸载硬盘是一个简单的开始。此外,如果你发现自己处于一种让你远离传统桌面的境地,学习如何这样做可能会节省很多时间和谷歌搜索。 ...

  • 发布于 2021-03-16 13:53
  • 阅读 ( 190 )

raspberry pi终端命令:raspberry pi用户快速指南

... 我们不希望您在不知道命令行如何工作的情况下就开始使用它。本质上,它是一种指示计算机执行任务的方法,但没有鼠标。 ...

  • 发布于 2021-03-18 12:27
  • 阅读 ( 515 )

linux命令参考备忘单

...便的Linux命令备忘单。如果您想运行其中的几个,请查看如何在带屏幕的Linux终端上执行多任务。 ...

  • 发布于 2021-03-22 04:06
  • 阅读 ( 231 )

如何在linux中添加用户

想在Linux系统上添加用户但不知道如何添加?在Linux上使用命令行界面管理用户无疑是一项复杂的工作。而对于初学者来说,即使添加新用户也是一场噩梦。 ...

  • 发布于 2021-03-26 23:29
  • 阅读 ( 331 )

linux中的进程是什么?

... 流程如何开始 ...

  • 发布于 2021-03-27 02:21
  • 阅读 ( 235 )

如何获得linux图形设备管理器

...行工具所没有的一件事是一组简单的基准特性。 相关:如何从Linux终端列出计算机的设备 安装hardinfo 要在Ubuntu上安装HardInfo,请键入: sudo apt install hardinfo 在Manjaro上,使用以下命令: sudo pacman -Sy hardinfo 在软呢帽上,你需要做...

  • 发布于 2021-03-31 11:57
  • 阅读 ( 237 )

如何在linux上创建手册页

...的内容上,而不是和一组晦涩难懂的宏作斗争。 相关:如何使用Linux的man命令:隐藏的秘密和基础 潘多克前往救援 pandoc程序读取标记文件并生成大约40种不同标记语言和文档格式的新文件,包括手册页。它完全改变了手册页的...

  • 发布于 2021-04-01 21:08
  • 阅读 ( 269 )

如何从linux命令行查看二进制文件

...。文件里有一大堆马厩,可以帮你分析。我们将向您展示如何使用这些工具。 识别文件类型 文件通常具有一些特性,允许软件包识别它是哪种类型的文件,以及其中的数据表示什么。尝试在MP3音乐播放器中打开PNG文件是没有...

  • 发布于 2021-04-02 04:41
  • 阅读 ( 354 )
bppbfdx
bppbfdx

0 篇文章

相关推荐