在进行OCR文字识别的时候,为了得到更好、更准确的识别率,往往只将原始图片进行识别是不够的,因为这些图片的来源有很多,比如相机拍摄、摄像头、手机拍照、扫描、屏幕截图等等。
为了更好的突出文字,弱化其他环境因素,使其能够被OCR识别引擎更好的识别,我们需要对图片进行一些处理,例如彩色图片变黑白、倾斜校正、文字清晰化等等。
1. 打开LEADTOOLS演示Demo:MultiEngine OCR Demo,然后选择Advantage识别引擎。
2. 在菜单中选择File->Open->示例图片
3. 在弹出对话框中选择一副您需要识别的图片。我们选择的是一副银行流水明细单。
可以看到,这个流水单中,有主要的三个问题:倾斜、印章、边线。
这其中,尤其是印章对整个识别非常不友好,会导致印章周围、印章中间的字识别不正确。倾斜的角度比较大,有可能会造成识别结果不准确。框线虽然非常整齐,但是对于识别引擎来说这是一个障碍,有可能字的旁边会被识别为竖线:|。
所以我们要对这样的图片进行一些预处理。首先需要去掉的肯定是印章,红色和黑色的对比太过强烈,所以我们利用通道的概念,去掉红色通道,只保留黑与白,这样印章就会消失,还原一副完全干净的明细单。
要使用通道,这不得不提到LEADTOOLS强大的图像处理功能,图像处理能够实现非常多的功能,所以我们使用另一个示例程序对图片进行处理。
1、打开安装盘:\LEADTOOLS 19\Shortcuts\Image Processing\.NET Class Libraries\Main Demo下的图像处理演示Demo:Main Demo。
2、点击菜单中的File—Open打开刚才的图片。
3、然后点击Color—Separation—RGB
图像会按照RGB三个通道分为三幅图片:
可以看到中间的红色通道图片上面的红色印章消失了。我们就将红色通道的那副图片保存下来,然后再用MultiEngine Demo打开准备进行OCR识别。
打开之后,我们先进行倾斜校正,因为扫描的有点斜,LEADTOOLS自带全自动倾斜校正,这省去了大量的开发时间,节省了工作时间,只需要一个命令就可以将倾斜的文本进行校正。
点击Pages—Process—Preprocess—Deskew进行倾斜校正:
校正完成后如下图:
接下来我们要去掉竖线,只保留文字。
首先我们要将这张图片转换为1bit黑白图像,使用Page—Process—Binarization—Auto命令进行黑白转换:
转换完成后,我们再移除横线,使用Pages—Process-Document Clean up—Line Remove移除框线:
移除框线后,效果如下:
可以看到,到这里,整张图片已经只剩下文字了,而且比之前要清晰的多,识别率也比之前提高了不少。
当然,这些操作针对不同图片有不同的效果,您可以自己尝试着做一遍,主要目的都只有一个就是让图片更加清晰,杂物更加少,以便于更好的识别。
最后放上最初图片和处理过图片的对比图:
获取支持
关于其他产品的更多信息,请访问我们的官方网站,
欢迎下载免费的全功能评估版SDK,全功能试用版中有这个例子的全部源代码。
同时欢迎您使用评估版期间的免费技术支持。