LeadTools OCR 文字识别进阶——使用LEADTOOLS对OCR识别图片进行预处理

发布时间:2015/08/25 00:08 发布者:AvoCaDolol

返回博客中心

在进行OCR文字识别的时候,为了得到更好、更准确的识别率,往往只将原始图片进行识别是不够的,因为这些图片的来源有很多,比如相机拍摄、摄像头、手机拍照、扫描、屏幕截图等等。

为了更好的突出文字,弱化其他环境因素,使其能够被OCR识别引擎更好的识别,我们需要对图片进行一些处理,例如彩色图片变黑白、倾斜校正、文字清晰化等等。

1. 打开LEADTOOLS演示Demo:MultiEngine OCR Demo,然后选择Advantage识别引擎。

2. 在菜单中选择File->Open->示例图片

image

3. 在弹出对话框中选择一副您需要识别的图片。我们选择的是一副银行流水明细单。

image

可以看到,这个流水单中,有主要的三个问题:倾斜、印章、边线。

这其中,尤其是印章对整个识别非常不友好,会导致印章周围、印章中间的字识别不正确。倾斜的角度比较大,有可能会造成识别结果不准确。框线虽然非常整齐,但是对于识别引擎来说这是一个障碍,有可能字的旁边会被识别为竖线:|。

所以我们要对这样的图片进行一些预处理。首先需要去掉的肯定是印章,红色和黑色的对比太过强烈,所以我们利用通道的概念,去掉红色通道,只保留黑与白,这样印章就会消失,还原一副完全干净的明细单。

要使用通道,这不得不提到LEADTOOLS强大的图像处理功能,图像处理能够实现非常多的功能,所以我们使用另一个示例程序对图片进行处理。

1、打开安装盘:\LEADTOOLS 19\Shortcuts\Image Processing\.NET Class Libraries\Main Demo下的图像处理演示Demo:Main Demo。

2、点击菜单中的File—Open打开刚才的图片。

3、然后点击Color—Separation—RGB

image

图像会按照RGB三个通道分为三幅图片:

image

可以看到中间的红色通道图片上面的红色印章消失了。我们就将红色通道的那副图片保存下来,然后再用MultiEngine Demo打开准备进行OCR识别。

打开之后,我们先进行倾斜校正,因为扫描的有点斜,LEADTOOLS自带全自动倾斜校正,这省去了大量的开发时间,节省了工作时间,只需要一个命令就可以将倾斜的文本进行校正。

点击Pages—Process—Preprocess—Deskew进行倾斜校正:

image

校正完成后如下图:

image

接下来我们要去掉竖线,只保留文字。

首先我们要将这张图片转换为1bit黑白图像,使用Page—Process—Binarization—Auto命令进行黑白转换:

image

转换完成后,我们再移除横线,使用Pages—Process-Document Clean up—Line Remove移除框线:

image

移除框线后,效果如下:

image

可以看到,到这里,整张图片已经只剩下文字了,而且比之前要清晰的多,识别率也比之前提高了不少。

当然,这些操作针对不同图片有不同的效果,您可以自己尝试着做一遍,主要目的都只有一个就是让图片更加清晰,杂物更加少,以便于更好的识别。

最后放上最初图片和处理过图片的对比图:

image

获取支持

关于其他产品的更多信息,请访问我们的官方网站

欢迎下载免费的全功能评估版SDK,全功能试用版中有这个例子的全部源代码。

同时欢迎您使用评估版期间的免费技术支持


关于葡萄城

赋能开发者!葡萄城是专业的集开发工具、商业智能解决方案、低代码开发平台于一身的软件和服务提供商,为超过 75% 的全球财富 500 强企业提供服务。葡萄城专注控件软件领域30年,希望通过模块化的开发控件、灵活的低代码应用开发平台等一系列开发工具、解决方案和服务,帮助开发者快速响应复杂多变的业务需求,最大程度地发挥开发者的才智和潜能,让开发者的 IT 人生更从容更美好。

了解详情,请访问葡萄城官网