对于我的项目,我正在为扫描文档编写图像预处理库。截至目前,我仍然坚持使用线删除功能。
问题描述: 扫描样本表格:
Name* : ______________________________
Age* : ______________________________
Email-ID: |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|
注意:的 以下是进一步的条件:
现在我要做的是检测这些行并删除它们。在这样做的同时,手写内容不应该丢失。
解决方案是这样的: 当前的解决方案是用Java实现的。
通过结合使用canny / sobel边缘检测器和阈值滤波器(使图像呈双色调)来检测这些线条。从前一个动作我得到一个黑白像素数组。遍历数组并检查该像素的光度是否低于指定的bin值。如果我找到30(像素的最小行长度)这样的像素,我删除它们。我对垂直线重复相同,但考虑到由于水平线移除会有切割的事实。
虽然解决方案似乎有效。但是有一些问题,比如,
请指导如何正确有效地完成工作。如果有一个开源库,请直接。
由于
答案 0 :(得分:1)
首先,我想提一下,我对图像处理一般都不了解,特别是关于OCR。
仍然,我想到了一个非常简单的启发式方法:
我能看到的唯一问题是,如果有人在水平线上写字母,就像这样:
/\ ___
/ \ / \
|__| |___/
-|--|---|---|------------------
| | \__/
在这种情况下,该行将保留,但无论如何你必须处理这个案例。
正如我所提到的,我绝不是图像处理专家,但有时非常简单的技巧。