有没有一种工具可以识别扫描文档中的文本(PNG,JPG)并将其转换为常规文本文件(DOC,TXT)?

它应该


在Ubuntu和Mac OS X上工作
免费
使用最常见的图像类型


#1 楼

我已经在Ubuntu上成功地使用了Tesseract进行光学字符识别。

它是免费的开源软件,由Google维护。

虽然拉丁字符和数字还不错,但它例如,与日语字符作斗争。您可能必须首先根据需要识别的内容来提供训练数据。

它可以从许多不同的图像格式中读取。



评论


好推荐!我也用那个。从Cuneiform切换了–不错,但是Tesseract对我而言表现更好。但是,可以从命令行使用它:)也许您可以指出该GUI的来源,以及要安装哪些软件包(apt-get等)?

– Izzy♦
2014年2月10日在9:14

屏幕截图实际上不是我的,但它显示了这个想法。我将Tesseract用作Alfresco的库,以对大量文档进行全文搜索。

–尼古拉斯·拉乌尔(Nicolas Raoul)♦
2014年2月10日上午9:17

我懂了。感谢您的反馈;我以为我可能错过了一些东西,因为我看不到apt-cache搜索tesseract提到的GUI :)

– Izzy♦
2014年2月10日9:24

+1 Tesseract是最准确的开源OCR引擎(例如splitbrain.org/blog/2010-06/15-linux_ocr_software_comparison)

–弗朗克·德农库尔
2014年3月15日在2:56

@DeerHunter:扫描完所有库后,他们可能会转储它:-)

–尼古拉斯·拉乌尔(Nicolas Raoul)♦
2014年5月22日13:24

#2 楼

我为此使用OCRfeeder。它是免费的,开源的,并且可以在Linux上运行(遗憾的是,虽然您可以从源代码构建OSX,但是没有针对OSX预先编译的可执行文件)。默认情况下,它可以在Tesseract引擎上运行,尽管可以更改。

截图(点击查看大图)

除了普通英语,我没有很多经验,但是对我来说很好,并且可以阅读大多数图像格式。它还可以打开读取的PDF。


支持导入PDF或图形文件(后者以不同格式,例如JPG,PNG,PPM,PNM等)
直接支持扫描仪(但是没有自动进纸,因此每个页面都需要单独添加)
支持无纸化,用于对扫描图像进行后期处理(以调整它们)
支持多个OCR后端Tesseract,CuneiForm,GOCR,Ocrad

您可以直接编辑识别的文​​本,同时显示相应的图像。支持自动更正字典(至少在Linux上;无法在其他系统上测试)–请参见以上两个屏幕截图中的右侧窗格
导出为PDF(可搜索!),ODT(例如LibreOffice的OpenDocument文本) / OpenOffice –然后可用于在需要时将其转换为.doc),纯文本(.txt)等


评论


感谢您提出来!我已经从命令行使用了tesseract(并且喜欢它)。可以尝试一下OCRfeeder。也许您可以说说它如何处理多页文档(是吗?),以及它是否具有直接的扫描仪支持(即我可以将一叠纸放入自动进纸器中,按一个按钮,然后输出多页PDF)?

– Izzy♦
14年2月14日在22:25

@Izzy刚刚记得您的评论。我没有在多页文档上使用它(我不需要扫描太多内容),所以使用YMMV。感谢您的修改。

–赛斯
14年2月15日在19:39

别客气!到目前为止,我只是尝试过一次。就像人们可以进行校正的方式(并排)。导出的PDF很大。也许我错过了图像的“压缩”选项。

– Izzy♦
2014-02-15 20:07



#3 楼

我使用Microsoft OneNote作为OCR工具。右键单击图像,它可以复制图像中的整个文本,还可以搜索图像中的文本。它是免费且准确的,并且可以在Windows上运行,并且支持几乎所有图像格式。

您可以复制内部文本并将其粘贴到文本文档中。

我不确定如果它可以在Ubuntu上运行,也可以不通过Wine来运行,那么Microsoft Note就可以在Mac OS上运行。

值得一提的是,它支持多种语言:

#4 楼

如果您想随时扩展到商业产品,LEADTOOLS OCR SDK只需几行代码就可以从图像中提取文本,并且可以选择将文本输出另存为(DOC,PDF,TXT, ect ...)

LEADTOOLS OCR引擎能够设置和提取50多种语言的文本。要测试LEADTOOLS OCR SDK,请在此处找到一个在线交互式演示。

它会自动分割图像以检测当前页面上的文本,图形或表格区域,然后输出提取的信息。

下面是演示OCRing和图像然后输出文本的屏幕截图: LEADTOOLS的图像:

   using (RasterCodecs codecs = new RasterCodecs())
   using (RasterImage image = codecs.Load(file))
   using (IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Advantage, false))
   {
        ocrEngine.Startup(null, null, null, null);
       using (IOcrPage ocrPage = ocrEngine.CreatePage(image, OcrImageSharingMode.None))
       {
           ocrPage.Recognize(null);
           Console.WriteLine(ocrPage.GetText(-1));
       }
   }


免责声明:我是该产品的雇员。

评论


当然有Web API而不是库吗?

–起搏器
18-4-4在4:58



@Pacerier LEADTOOLS现在具有Web API,即云服务,可在使用OCR时使用。这将不涉及下载任何库,我们免费为您提供前50页的OCR。代码本身非常容易实现,如下所示

–nvillalobos
18年11月27日在22:49

#5 楼

您可以使用几种流行的OCR命令行工具(我不确定它们是否具有GUI):


GOCR

开源字符承认。它将扫描的文本图像
转换回文本文件。 GOCR可以与不同的前端一起使用,这使得移植到不同的OS和体系结构变得非常容易。它可以
打开许多不同的图像格式,并且其质量每天都在提高。




OCRopus™(FAQ)(编写在Python,NumPy和SciPy中使用)

OCR系统专注于使用大型机器学习解决文档分析中的问题,具有可插拔布局分析,可插拔字符识别功能,统计自然语言建模和多语言功能。
OCRopus引擎基于两个研究项目:一个是在90年代中期开发的高性能手写识别器,另一个是由美国人口普查局以及新颖的高性能布局分析方法。
OCRopus是Google赞助的开发项目,最初是
用于高吞吐量,大批量文档转换的工作。
/>我们希望它对于许多其他应用程序来说也将是一个出色的OCR系统。




Tessnet2(开源,OCR,Tesseract,.NET, DOTNET,C #,VB.NET,C ++ / CLI)

Tesseract是C ++开源OCR引擎。 Tessnet2是.NET程序集,它公开了执行OCR的非常简单的方法。 Tessnet2已获得Apache 2许可(如tesseract),这意味着您可以根据需要使用它,并将其包含在商业产品中。



很少有其他产品:适用于Linux的ABBYY CLI OCR, Asprise OCR
有关更完整的列表,请检查:Wikipedia上的光学字符识别软件列表
另请参见:wanghaisheng/awesome-ocr-GitHub上有前途的OCR资源的精选列表。 ,最简单的OCR解决方案?