代码之家  ›  专栏  ›  技术社区  ›  Jazzmanouch

在iphone上绘图

  •  5
  • Jazzmanouch  · 技术社区  · 15 年前

    我正在尝试为孩子们开发一款iPhone应用程序,它可以通过触摸在屏幕上绘制字符,我想知道如何将绘制的字符与字母表中的良好字符相匹配。我将如何比较这两种形状(绘图和现有) 知道吗?? 一些密码?

    3 回复  |  直到 15 年前
        1
  •  3
  •   CVertex    15 年前

    Using GLGestureRecognizer 您可以创建一个目录,它将根据您预定义的“字母表”计算输入点数组之间的度量。

    GlgestureRecognitor是Objective-C 1美元一招的实施 识别器,一个简单的手势 识别算法(见学分) 下面)。它在这里提供 iPhone应用程序的形式 项目它是在过去一年中实施的 几晚的课程 2009年4月亚当·普雷布尔。

    iPhone演示项目 (signities.xcodeproj)提供;A. UIView子类接收触摸事件 然后把它们送到 GLgestureRecognitor类 用白色绘制被触摸的路径。 手势完成后 重新采样的手势显示为绿色, 它的中心位于红点,以及 最佳对手的名字、得分 (越低越好)和手势 方向样本量为16 示例中使用了points,其中 似乎足以满足非常基本的需求 形状。

        2
  •  1
  •   hermos    15 年前

    哇,这听起来是一项艰巨的任务。我想到的一种可能性是使用支持向量机。

    1.)生成图形的图像,并通过将向量附加到用户绘制的路径来“矢量化”。

    2.)需要支持向量进行比较。我要做的是,实现一个“培训应用程序”。让一些孩子画画(例如10次A,10次A,B,aso…),将向量放入数据库,并将其用作支持向量。

    3.)您需要一个评级算法,通过将用户绘图与支持向量进行比较来对其进行评级(这可能是其中最有趣的部分)。我可以考虑测量支持向量起点和终点到绘制向量的距离。距离最小的svm就是你带的字母。然后,您可能会引入一个距离,即“边界”,并将此边界上方的所有用户图形视为无法识别。

    第二种方法可能是生成带有字母的图像(例如,白色背景和黑色字母(非抗锯齿))。再次生成用户图形的图像,并将其调整为要与之比较的图像,尝试完全“重叠”。然后计算两幅图像中匹配的黑色像素数,并获取匹配最多的字母。

    但是,由于我实现了类似的功能,我可以看出svm方法更令人满意,因为如果结果不够好,可以添加支持向量。精髓在于你的评分算法。

    不管怎样,听起来像是几周的工作。

    编辑:因为这是一个有趣的领域,我做了一些研究,发现了一篇关于手写识别的论文。看看这个: http://risujin.org/cellwriter/ 它基本上描述了我提到的支持向量机方法,并给出了一些可能对你有帮助的算法。

        3
  •  0
  •   iwasrobbed    15 年前

    你可以随时使用 Gesture Recognition ... 但对于这样的定制场景来说,这是相当困难的。

    否则你可能会在 Quartz 这至少能帮你解决部分问题。我很想看看你是怎么解决的。。这听起来是一条相当困难/有趣的道路。