【发布时间】:2013-01-28 06:25:29
【问题描述】:
我正在尝试确定从扫描文档中提取手写数据的最佳方法。
手写数据位于特定的加框区域。我生成了文档的数字版本,因此我知道加框区域的坐标,并且如果需要,还可以生成文档的其他变体(即屏蔽版本以使字段更易于提取)
我不能只使用文档生成中的坐标提取字段的原因是在扫描过程中发生了移位/缩放/透视修改,这可以推/拉每个人的坐标框不同(扫描的文档确实有用于对齐的角标记,但即使如此,通常也会发生意外的转换)。
我认为有两种方法可以解决这个问题:逐步检查页面上每个框的坐标,并尝试使用某种技术/算法“纠正”它们,或者将已完成的表格与空白表格进行比较(被屏蔽?)并尝试以这种方式提取正确的字段。
针对这些修改进行调整并准确提取包含笔迹的区域的最有效技术/算法是什么?还有其他选择吗?
【问题讨论】:
-
如果您的框被线包围,您可以通过相关或任何其他方法(霍夫变换等)轻松找到它。顺便说一句,如果图像可以旋转,相关性会给您带来不好的结果,但霍夫变换将帮助您确定旋转角度(因为文档中的主线是水平和垂直的)。旋转校正后,你真的可以用标准具做一个简单的相关来找到偏移坐标。
-
没有看到表格,我只是在猜测。我的上一个项目确定了点的模式。点的方便之处在于,无论它处于什么旋转位置,点都是点。点的图案可以形成地标,软件可以将其用作旋转原点。通过知道原点和角度,很容易提取区域。点的图案也可以指示分辨率。我很困惑为什么角标记只能达到 5 度以内。间隔那么远的标记应该比这更好。
-
我已按照建议添加了表单图像,以帮助更好地解释问题。我还应该澄清的是,在预处理阶段,图像会根据角标记进行旋转以正确定位 - 我遇到的问题与仅在捕获的图像的某些部分发生翘曲有关。
-
即使是灰色的,框也比背景浅。如果你对像素暗度进行滚动平均(单个像素可以做奇怪的事情),当背景和框之间的暗度变化时,你应该会看到一个重大变化。通过寻找 10% 的黑暗变化,无论盒子是灰色还是白色,它都必须明显更亮。
-
@HipHop-opatamus 首先确保没有“最佳方法”。但是,使用 SURF 和一个不错的关键点匹配器可以为您的示例提供完美的结果,然后图像配准也可以提供完美的结果。你有没有尝试过基于关键点检测和匹配的方法?
标签: opencv image-processing computer-vision