【示例教程】LEADTOOLS中如何使用文档清理命令接口来清理文档图像


发布者 Harriet666  发布时间 1513675817893
关键字 分享 
Leadtools 19总套包下载>>>
 
文档清理对文档成像有很大的影响。它改进了文档的视觉效果和可读性。文件图像清理是OCR,条形码,PDF,表单识别,档案等类似的功能的必备预处理,它可以增强了这些功能的效果和效率。
 
准确度 - 图像很少完美。原始文件中的颜色,角度,缺陷都会对识别技术的准确性产生影响。通过正确对齐图像并移除重要区域周围的障碍物,识别过程可以扫描图像,并寻找您要提取的文本和数据。
压缩 - 大多数压缩算法的工作原理是通过找到方法来巧妙地将像素组合在一起,使用较少的体积,但仍然将图像重建为原始图像(或接近原始的有损方法),未压缩数据。在文档中,黑白图像尤其如此。通过去除像素点,打孔和边框等不必要的伪像,可以得到更好的压缩效果。
速度 - 随着不必要的像素越来越少,几乎每个算法都可以更快地完成其工作。
 

使用LEADTOOLS进行文档图像清理

本文教大家如何利用LEADTOOLS进行这些优化。这里有一些最常用的清理功能,可以轻松应用于任何图像,进行这些基础的处理后可以使您更高级的功能成为更好的运行。
 
转换图像颜色(Inverted Image)
由于许多原因,双色图像可能会反转。扫描仪设置,反转调色板,彩色蒙版或从一种格式转换到另一种格式都可能导致应为黑色的像素为白色,反之亦然。这个功能可以在每个图像上运行。
1
2
InvertedPageCommand invertedPage = new InvertedPageCommand(InvertedPageCommandFlags.Process);
invertedPage.Run(img);
 
去斑点(Despeckle)
斑点经常正图像、扫描仪或半色调中出现。它适用于白色背景上的黑色斑点和黑色背景上的白色斑点。运行此功能以删除它们。
1
2
DespeckleCommand despecklePage = new DespeckleCommand();
despecklePage.Run(img);
 
移除直线(Line Removal)
两种最常见的线条来源是表格和纸张折叠。 在这两种情况下,即使与打印或手写的文本相交,也可以检测和删除窄的水平线或垂直线。这是任何识别技术的必备功能。
1
2
3
4
5
6
7
8
9
LineRemoveCommand lnPage = new LineRemoveCommand();
lnPage.Type = LineRemoveCommandType.Horizontal;
lnPage.Flags = LineRemoveCommandFlags.UseGap;
lnPage.GapLength = 2;
lnPage.MaximumLineWidth = 5;
lnPage.MinimumLineLength = 200;
lnPage.MaximumWallPercent = 10;
lnPage.Wall = 7;
lnPage.Run(img);
 
移除边框(Border Removal)
如果图像扫描时有平板背衬上有额外的空间,扫描仪将填充一个颜色的间隙。 如果它是黑色的,那么它可以被删除。
1
2
BorderRemoveCommand borderPage = new BorderRemoveCommand();
borderPage.Run(img);
 
打孔移除(Hole Punch Removal)
如果扫描仪扫描出任何的打孔,并且黑色,您可以消除它们以恢复这些区域以匹配背景。
1
2
HolePunchRemoveCommand holePage = new HolePunchRemoveCommand();
holePage.Run(img);
 
文档清理的其他功能
上述功能是可以应用于任何文档图像的通用文档清理功能。 LEADTOOLS提供了更多的文档图像处理功能,如歪斜校正,3D倾斜校正等,可用于更精确的处理。








  开源的 OurJS
OurJS开源博客已经迁移到 OnceOA 平台。

  关注我们
扫一扫即可关注我们:
OnceJS

OnceOA