Ped*_*dro 6 language-agnostic algorithm image-processing noise
我正在开发一个自动处理扫描发票的项目.为了获得更好的OCR引擎效果,我想首先从图像中去除噪声.除了划痕,我还想删除打印后添加到文档中的任何内容.许多发票例如被勾掉了,有时它会使发票的某些部分对OCR不可读.
例如,看一下这张图片.第二项的描述是不可读的,我想删除那样的"噪音".
那么如何删除这样的手写区域并保持高质量的打印文本呢?
只需忽略任何不至少具有一定颜色强度的像素,即可相当容易地过滤划痕和其他斑点。
您可以使用三种选项来处理线条:
第一个重要问题是,手写体是用不同颜色写的吗?一个简单的解决方案是为每个人提供蓝色或红色笔,并禁止使用黑色笔。然后,您可以扫描彩色文档,然后您可以轻松地使用绿色缓冲区作为灰度图像,而不是全部三个缓冲区。这将是实现这一点的最简单方法,现在几乎每个扫描仪都支持彩色扫描。
否则,您将不得不编写一个可以检测图像中的线条的算法,为了使其工作,您需要首先校准算法以首先了解字符的大小通常是多少,然后找到任何符合的线条长于 X 像素,然后从那里删除该线。这将是一个很大的问题,而且对你来说效果不太好,你会花很长时间试图让它工作,但它仍然永远不会 100%。
另一种方法是,在完成 OCR 后,您应该向最终用户提供数据以验证其正确性,然后您可以向他们提供扫描的图像,并允许他们覆盖扫描的图像(如果不正确)。
在这三个选项中,我想说最好的选择就是防止人们用黑笔在发票上书写。如果您做不到这一点,请尽可能扫描文档并将其提供给最终用户以澄清有问题的字段(您甚至可以将它们标记为问题,这样用户就不需要检查整个文档)时间)。
编辑:值得指出的一件事是,如果您收到已写好然后传真的文档,则除了选项 3 之外,您将无法对它们做太多事情(尽力而为,然后呈现给用户)。
| 归档时间: |
|
| 查看次数: |
2593 次 |
| 最近记录: |