我试图从框中提取手写字符。由于表格的扫描不一致,框的宽度和高度也不是常数。
这是表格的一部分。
我目前的方法:
1. 提取水平线
2. 提取垂直线
3. 组合上述两张图像
4. 查找轮廓(使用了opencv)
这种方法可以得到大部分的框。但是,当框内填写了像”L”或”I”这样的字符时,字符中的垂直线也会被提取为垂直线的一部分。因此,轮廓也会变得混乱。
由于框是周期性排列的,有没有办法使用快速傅里叶变换来提取这些框呢?
回答:
我最近开发了一个专门处理这个问题的Python包。
我称之为BoxDetect,通过以下方式安装后:
pip install boxdetect
使用时可能看起来像这样(您需要根据不同的表格调整参数):
from boxdetect import configconfig.min_w, config.max_w = (20,50)config.min_h, config.max_h = (20,50)config.scaling_factors = [0.4]config.dilation_iterations = 0config.wh_ratio_range = (0.5, 2.0)config.group_size_range = (1, 100)config.horizontal_max_distance_multiplier = 2from boxdetect.pipelines import get_boxesimage_path = "dumpster/m1nda.jpg"rects, grouped_rects, org_image, output_image = get_boxes(image_path, config, plot=False)
您可以查看下面的讨论以获取更多信息:
如何检测表格中特定字段输入字母的所有框?