您可以使用Tesseract OCR引擎在Linux命令行上从图像中提取文本。它快速、准确,可以使用大约100种语言。下面是如何使用它。
光学字符识别(OCR)是一种在图像中观察和查找单词,然后将其提取为可编辑文本的能力。对于人类来说,这项简单的任务对于计算机来说是非常困难的。至少可以说,早期的努力是笨拙的。如果字体或大小不符合OCR软件的要求,计算机常常会感到困惑。
尽管如此,这一领域的先驱者仍然受到高度尊重。如果您丢失了文档的电子副本,但仍有打印版本,OCR可以重新创建可编辑的电子版本。即使结果不是100%准确,这仍然是一个伟大的节省时间。
手工整理一下,你就能把文件拿回来了。人们原谅了它所犯的错误,因为他们理解OCR软件包所面临的任务的复杂性。另外,这比重新输入整个文档要好。
从那以后情况有了很大改善。由Hewlett-Packard编写的Tesseract OCR应用程序始于上世纪80年代,是一种商业应用程序。它在2005年是开源的,现在得到了谷歌的支持。它具有多语言功能,被认为是最准确的OCR系统之一,您可以****它。
要在Ubuntu上安装Tesseract OCR,请使用以下命令:
sudo apt-get install tesseract-ocr在Fedora上,命令是:
sudo dnf install tesseract在Manjaro上,您需要键入:
sudo pacman -Syu tesseract我们将对Tesseract OCR提出一系列挑战。我们的第一张包含文本的图像是从通用数据保护条例背诵63中提取的。让我们看看OCR是否能读到这个(保持清醒)。
这是一个棘手的图像,因为每个句子都以一个微弱的上标数字开头,这在立法文件中很典型。
我们需要给tesseract命令一些信息,包括:
我们的图像文件名为“背诵63.png”,其分辨率为150 dpi。我们要从中创建一个文本文件,名为“朗诵.txt.”
我们的命令是这样的:
tesseract recital-63.png recital --dpi 150结果很好。唯一的问题是上标太模糊,无**确阅读。一个好的图像质量是至关重要的,以获得良好的效果。
tesseract将上标数字解释为引号()和度数符号(°),但实际文本已被完美地提取(图像右侧必须修剪以适应此处)。
最后一个字符是一个十六进制值为0x0C的字节,这是一个回车符。
下面是另一张图片,文字大小不同,粗体和斜体都有。
此文件的名称为“粗体”-斜体.png“我们要创建一个名为”粗体.txt所以我们的命令是:
tesseract bold-italic.png bold --dpi 150这一个没有造成任何问题,文本被完美地提取出来。
Tesseract OCR支持大约100种语言。要使用一种语言,必须先安装它。当您在列表中找到要使用的语言时,请注意其缩写。我们将安装对威尔士的支持。它的缩写是“cym”,是“Cymru”的缩写,意思是威尔士语。
安装包名为“tesseract ocr-”,末尾标记了语言缩写。要在Ubuntu中安装威尔士语文件,我们将使用:
sudo apt-get install tesseract-ocr-cym下面是带有文本的图像。这是威尔士国歌的第一节。
让我们看看Tesseract OCR是否能胜任这个挑战。我们将使用-l(语言)选项让tesseract知道我们要使用的语言:
tesseract hen-wlad-fy-nhadau.png anthem -l cym --dpi 150tesseract处理得非常完美,如下面提取的文本所示。天哪,特塞拉特OCR。
如果文档包含两种或两种以上的语言(例如从威尔士语到英语的词典),可以使用加号(+)告诉tesseract添加另一种语言,如下所示:
tesseract image.png textfile -l eng+cym+fratesseract命令设计用于处理图像文件,但它无法读取PDF。但是,如果需要从PDF中提取文本,可以先使用另一个实用程序生成一组图像。单个图像将表示PDF的单个页面。
您需要的pdftppm实用程序应该已经安装在您的Linux计算机上。我们将使用的PDF作为示例,它是Alan Turing关于人工智能的开创性论文“计算机器和智能”的副本
我们使用-png选项指定要创建png文件。我们的PDF文件名是“图灵.pdf”我们将图像文件称为“turing-01.png”、“turing-02.png”等等:
pdftoppm -png turing.pdf turing要使用单个命令对每个图像文件运行tesseract,我们需要使用for循环。对于我们的每一个“图灵”-nn.png格式,文件我们运行tesseract,并创建一个名为“text-”的文本文件加上“turing nn”作为图像文件名的一部分:
for i in turing-??.png; do tesseract "$i" "text-$i" -l eng; done;要将所有文本文件合并为一个文本文件,我们可以使用cat:
cat text-turing* > complete.txt那,怎么办?很好,你可以看到下面的。不过,第一页看起来很有挑战性。它有不同的文字样式和大小,装饰。页面右边缘还有一个垂直的“水印”。
但是,输出接近原始值。显然,格式已丢失,但文本是正确的。
垂直水印在页面底部被转录成一行乱码。文本太小,tesseract无法准确阅读,但很容易找到并删除它。最糟糕的结果是每行末尾都出现了错误的字符。
奇怪的是,在第二页的问题和答案列表开始的单个字母被忽略了。PDF中的部分如下所示。
正如您在下面看到的,问题仍然存在,但是每行开头的“Q”和“A”都丢失了。
图表也不会被正确转录。让我们看看当我们试图从图灵PDF中提取下面所示的内容时会发生什么。
正如您在下面的结果中看到的,字符被读取了,但是图表的格式丢失了。
再次,tesseract与小尺寸的下标作斗争,它们被错误地呈现。
不过,公平地说,这仍然是一个好结果。我们无法提取直截了当的文本,但后来,故意选择了这个示例,因为它提出了一个挑战。
OCR不是你每天都需要使用的东西。然而,当需要的时候,很高兴知道你有一个最好的OCR引擎在你的支配之下。
...。它之所以成为远程服务器管理的首选是有原因的。学习如何通过SSH远程管理Linux服务器,从连接到安装软件和文件传输。 ...
如果您希望更多地使用Linux终端,那么学习如何手动装载和卸载硬盘是一个简单的开始。此外,如果你发现自己处于一种让你远离传统桌面的境地,学习如何这样做可能会节省很多时间和谷歌搜索。 ...
... 我们不希望您在不知道命令行如何工作的情况下就开始使用它。本质上,它是一种指示计算机执行任务的方法,但没有鼠标。 ...
...便的Linux命令备忘单。如果您想运行其中的几个,请查看如何在带屏幕的Linux终端上执行多任务。 ...
想在Linux系统上添加用户但不知道如何添加?在Linux上使用命令行界面管理用户无疑是一项复杂的工作。而对于初学者来说,即使添加新用户也是一场噩梦。 ...
...行工具所没有的一件事是一组简单的基准特性。 相关:如何从Linux终端列出计算机的设备 安装hardinfo 要在Ubuntu上安装HardInfo,请键入: sudo apt install hardinfo 在Manjaro上,使用以下命令: sudo pacman -Sy hardinfo 在软呢帽上,你需要做...
...的内容上,而不是和一组晦涩难懂的宏作斗争。 相关:如何使用Linux的man命令:隐藏的秘密和基础 潘多克前往救援 pandoc程序读取标记文件并生成大约40种不同标记语言和文档格式的新文件,包括手册页。它完全改变了手册页的...
...。文件里有一大堆马厩,可以帮你分析。我们将向您展示如何使用这些工具。 识别文件类型 文件通常具有一些特性,允许软件包识别它是哪种类型的文件,以及其中的数据表示什么。尝试在MP3音乐播放器中打开PNG文件是没有...