【问题标题】:Cocos2d handwriting recognition....HOW...?Cocos2d 手写识别....HOW...?
【发布时间】:2011-07-20 09:57:50
【问题描述】:

我正在尝试制作一款我想要实现手写识别的游戏,

我真正想要的是,当用户在屏幕上滑动手指时,应该在他滑动手指的任何位置创建一条线,当他抬起手指时,我想检查他创建的图像是否与任何字母匹配(a ,b,c...z),如果是,那么是哪个字母表。

我尝试使用 CGSprite 绘制线条,但如果用户不断滑动手指,它会导致 fps 大幅下降,然后应用程序崩溃,但我不知道如何识别它。

如果可能的话,任何人都可以告诉我,如果可以,请告诉我如何处理这个问题。

提前致谢

【问题讨论】:

  • 嘿...这很棘手。你在做一些工作。从好的方面来说,你在想 ScribbleNaughts 吗?我会买那个 :) 虽然不想编码它大声笑。我最好的猜测是它会涉及很多数学。计算拐角,计算曲线。检查曲线和角度连接的顺序,以及拐角的角度(矢量?)......等等。
  • 首先,崩溃——你测试过你画了多少个精灵吗?当您滑动手指时,它们可能呈指数增长!第二 - 几年前我在基本的鼠标(或类似鼠标的动作)手势/模式识别方面做了一些工作,使用神经网络得到了一些基本的东西,但这是一个真实的伤害世界 - 如果我处于你的位置,我会寻找一个成熟的图书馆或寻找一个新项目 - 祝你好运!

标签: cocos2d-iphone ocr


【解决方案1】:

对于画线,我建议使用基本的 OpenGL 调用来画线。随每个触摸移动事件存储所需的点,然后在节点的绘图函数中设置 OpenGL 状态以满足您的线条绘制需求...

glEnable(GL_LINE_SMOOTH);
glLineWidth(2.5f);

然后遍历您的点列表并使用类似

ccDrawLine(pA, pB);

在这些点之间画线。

至于使用这些数据来检测字母,这是一个非常棘手的问题。你可能想寻找图书馆来为你做这件事。如果您下定决心自己动手,那么您应该从寻找有关手写识别的研究论文开始。

【讨论】:

    【解决方案2】:

    你也可以使用 CCRibbon 来画线 定义一个 CCRibbon 并保留对它的引用 您应该为功能区使用正确的图像

    CCRibbon *line = [CCRibbon ribbonWithWidth: image: length: color: fade:];

    然后在您的触摸处理程序中,当触摸移动时向 CCRibbon 添加新点

    [line addPointAt: width:];

    【讨论】:

      【解决方案3】:

      我能想到三种不同的解决方案。

      1. 使用现有库。也许你不会找到用 Objective-C 编写的,但使用任何 C 或 C++ 库也应该很容易。例如,您可以使用AMELiALipi Toolkit
      2. 为不同的字母写一个Custom Gesture Recognizer
      3. 自己实现。您可以使用神经网络或支持向量机。您可以使用网络上的一些免费数据集来训练它们。马尔可夫模型也常用于解决这个问题。但是,除非您想学习大量理论并具备良好的数学知识,否则我不会推荐这种方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多