我们假设,我们正在使用复选框/空圆圈(用于签名/敲击/勾选)扫描类似测试的文档。如果已经裁剪的复选框/圆圈被选中/签名/删除/勾选,检查的正确方法是什么?
如果我们强迫测试用户完全标记该区域,只要知道复选框/圆圈的位置和非白色像素的计数量就足够了(是吗?),但我们应该采用何种方式进行测试,即勾选或勾选复选框/圆圈(X)?
这将成为C#项目的一部分,因此我们将非常感谢.net / c / c ++的代码甚至现成的库。
答案 0 :(得分:3)
如果它什么也没有返回,那么你知道它没有被检查。
如果它返回了某些内容,则将其与大的白色可能列表进行比较,然后标记不确定性。
您可以使用@dan建议的错误处理
这比仅仅采取平均值更加强大,是因为您可以确定它是否具有高确定性。因为我们正在寻找一种可以识别的最小方式的标记,我们知道如果没有任何东西那么它绝对不会被检查。所有你需要做的就是找到一个很好的白色字符列表和可以用作检查的标记(并且在框外思考,ocr系统可能会为一个曲线返回'a',但这是一个积极的回应) 。并且澄清一下,仅仅采取平均值的问题是复选框中的任何黑暗增加都会产生积极的结果,但情况并非总是如此。如果有人放了一个标记,然后擦掉你仍然会在盒子内增加黑暗。
最后我要补充一点,现在有很多OCR系统非常先进。我怀疑你找到一个你可以提供额外的训练数据集的麻烦,这些训练数据集可以比随机字符更好地匹配你的情况。
答案 1 :(得分:1)
算法会是这样的:
但是,您应该添加一些检查:
我猜这个答案的重要部分是:
如果算法不确定,请将其标记为手动处理。
答案 2 :(得分:1)
大多数提供复选框识别功能的高性能产品使用某种钟形分布曲线来计算实际检查盒子的可能性:太多“数据”#39;用户改变主意并潦草地写下这个盒子的机会很大;太少了,它可能是尾巴'用户在下面的方框中勾选而不是在穿过下一个框区域之前抬起笔。
我建议您应用额外的逻辑来处理允许的多个盒子(例如,您拥有一辆汽车/您是否也拥有自行车)以及只有一个盒子可以正确的情况(例如,你是男性还是女性)。这应该有助于您的应用。过滤掉更明显的错误。