Julia学习笔记:使用Tesseract包进行OCR

这几天,工作中需要整理大量文档,而且,需要将文档中特定部分摘录汇总。可是这些文档均为扫描而成的pdf文件,如果将其中需要的特定部分进行摘录,需要重新打字转录,那真是费时费力。可工作还要进行,这可如何是好?难道只能硬着头皮一个一个打字?那真是不符合我们“懒人”的做派。

突然想到Julia中可以使用Tesseract包实现OCR功能,于是就试试这个方案。

将文档中需要摘录的部分截屏存为图片,准备使用Julia来进行OCR。这里需要Images包和Tesseract包(using Images和using Tesseract)。

因为是英文文档,所以使用 download_languages(“eng”) 来初始化Tesseract进行OCR的语言。此前曾出现过无法正常下载语言文件,导致Tesseract不能正常运行的情况。如果遇到这个问题,可以直接下载语言文件,并放置入Tesseract相应文件夹中即可。

操作其实比较简单,先是TessInst(“eng”)初始化一个基于英语的实例,再使用 pix_read() 读取打开的图片文件。然后用 tess_image() 将读取的图片文件信息导入实例,最后将实例作为参数,使用 tess_text() ,即可获得OCR的文字了。

可是,不知什么原因,无论是用VS Code还是Jupyter Lab,执行 tess_text() 时总是报错或假死机。根据VS Code提供的错误代码,到其主页查看,似乎是兼容性的什么问题。

后来,不使用IDE环境,直接启动Julia,将代码copy至Julia REPL中,可以正常运行并得到结果了。

在代码后段,使用文件操作函数——open(),write()和close(),将OCR结果保存至文件中以备后续使用。而且,为了方便及提高效率,使用Gtk包,反复打开需要OCR的图片文件,将多个结果保存在一个文件中;并在保存每个图片的OCR结果时,将图片文件名添加进去,进行对应,方便此后查询。

这样,不多时,一批文档的特定内容就全部读取完毕,只需核对OCR结果与原文档内容是否匹配,并汇总即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值