2011-07-20 8 views
7

私は手書き認識を実装しようとしているゲームを作ろうとしています。ココス2d手書き認識....どのように...?

私はまさに欲しいのは、ユーザーが指をスライドさせたときに、彼は指を持ち上げて、作成した画像がアルファベット(a、b、c ... z)と一致していることを確認したい。

私はCGSpritesを使って線を描こうとしましたが、ユーザーが指を滑らせ続けると、巨大なfpsが落ちて、後でアプリケーションがクラッシュするようになっています。

これはとにかく可能であれば、誰でも私にまでお待ちください。もし可能であれば、これにアプローチする方法のアイデアを私に提供してください。私は基本的にOpenGLを使用することをお勧めし線画を事前

+0

Heh ...それは難しいです。あなたは何らかの仕事をしています。明るいところで、あなたはScribbleNaughtsを考えていますか?私はそれを買うだろう:) LOLしかしそれをコード化したくないだろう。私の最高の推測は、それは多くの数学を含むだろうということです。コーナーを数え、カーブを数える。カーブとアングルがどのような順序で接続されているか、コーナーがどの角度(ベクトル? –

+0

最初に、クラッシュする - あなたが描いているスプライトの数を確認するためにテストしましたか?彼らはおそらくあなた指をスライドさせると指数関数的に成長しています!第二に - 私は、数年前に基本的なマウス(または運動のようなマウス)ジェスチャー/パターン認識にいくつかの作業をしたニューラルネットを使用して作業し、いくつかの基本的なものだが、それは傷の現実の世界だった - 私は私がしたいあなたの位置にあった場合良いライブラリーを探したり、新しいプロジェクトを探してみてください - 幸運を祈る! –

答えて

1

おかげで線を描画するために呼び出されます。あなたはその後、ポイントと使用のリストを反復

glEnable(GL_LINE_SMOOTH); 
glLineWidth(2.5f); 

...ニーズを描くあなたのラインを満たすためにあなたのノードのためのドロー機能で、セットアップOpenGLの状態をすべきであるあなたが欲しいしかし、すべてのタッチ移動イベントでポイントを保存し、

ccDrawLine(pA, pB); 

これらのポイント間の線を描くようなものです。

文字を検出するためにそのデータを使用するのは、非常に難しい問題です。あなたのためにそれを行うために図書館を探したいかもしれません。もしあなたが自分自身でそれを行うことで死んでいるなら、手書き認識に関する研究論文を探すことから始めるべきです。

0

私は3つの異なる解決策を考えることができます。

  1. 既存のライブラリを使用します。 Objective-Cで書かれたものが見つからないかもしれませんが、CやC++のライブラリを使うことも簡単です。たとえば、AMELiAまたはLipi Toolkitを使用できます。
  2. 別の文字にはCustom Gesture Recognizerを書きます。
  3. 自分で実装してください。ニューラルネットワークを使用したり、ベクタマシンをサポートすることができます。ネット上の無料のデータセットを使ってそれらを訓練することができます。マルコフモデルは、この問題を解決するためにも一般的に使用されます。しかし、多くの理論を学び、数学の知識が豊富であることを望んでいない限り、私はこのアプローチを推奨しません。
1

は、線を引くためにあなたもCCRibbonを定義CCRibbon を使用して、それが あなたがリボンのために適切な画像を使用する必要がありますへの参照を保持することができます

CCRibbon *ライン= [CCRibbon ribbonWithWidth:画像:長さ:色:フェード:];タッチ移動がCCRibbonする新しいポイントを追加するには、タッチハンドラで、その後

[行addPointAt:幅:];

関連する問題