我打算让用户以7段显示的形状绘制数字(1到9)的形状。检测抽取的数字的最佳方法是什么?
我知道如何进行所有触摸跟踪和UIGestureRecogniser的工作 - 我正在寻找一个很好的逻辑。
到目前为止,我已经: 当触摸从一个段的一半移动到另一个段时,突出显示该段。一旦完成触摸,检查突出显示的segs并确定绘制的数字。
我想过改进它的方法: 在屏幕上绘制手指路径的形状。如果该线与seg的中间相交,则突出显示该段。
任何人都有任何提示或更好的方法吗?我愿意接受任何建议 - 即使这意味着要废弃我的所有代码并从头开始。
答案 0 :(得分:6)
我已经使用$ stroke识别器的实现来绘制数字识别。
两种算法都链接到几个Objective-C / iOS实现。
识别器将根据不同的算法将输入与预定义模式进行比较(链接页面上提供详细说明)。为此,你必须制作自己的数字模式(基本上只是绘制一些东西,让识别器将其转换为你存储的数据结构供以后使用)。然后在用户输入上比较您之前记录的模式以找到匹配项。
$ 1识别器足以满足我的应用需求,我会先让用户训练来练习绘制数字。 $ N识别器能够区分更复杂的stokes并且可能接受更复杂的绘制数字。这是你必须要试验的东西。
答案 1 :(得分:2)
如果您对检测数字1-9感兴趣,请查看BGNumericalGlyphRecognizer。我花了几个月的时间使用$ N-multistroke识别器来创建ScribbleMath(一个允许孩子们在屏幕上绘制答案的数学应用程序)并开源核心逻辑。事实证明$ N识别器很难区分6和9,并且也很难识别非常简单的字母,如1和“ - ”,并且我创建了处理这些更好的逻辑。它并不完美,但它会让你比开箱即用的N识别器更远。享受!