2

人間の手のスキャン画像を入力として取り、手相占いの原理に基づいて未来を予測する小さなソフトウェアを作ろうとしています。手持ちの各種ラインの座標を正確に求めるにはどうすればよいかアドバイスをいただきたいです。私は特定の画像セットを持っていないので、アプローチは一般的なままにしておく必要があります。すべての画像で機能するはずです。

前もって感謝します。

4

2 に答える 2

2

パッケージを使用することをお勧めします。パッケージjava.lang.Palmistryと組み合わせて使用​​することjava.lang.FuturePredictionもできます。

すべてのジョークはさておき、ここにおそらく有用な提案があります:

  1. 提出者に、低く片側の光源で手を撮影するように依頼します。これにより、手の浅い尾根に影ができ、手の線の入力信号が向上します。
  2. 次に、画像のビットマップデータに対して、ある種のエッジ検出またはエッジエンハンスメントを使用します。これは、かなり標準的な畳み込み行列カーネルフィルターを使用して実装できます。これは、 Sobel演算子とも呼ばれます。
  3. 未来も指の線で書かれていない限り、ほとんどが手のひらの上の正方形のウィンドウである領域に画像をトリミングする必要があるかもしれません。
  4. 最後に、線と座標を取得するには、画像のベクトル化を調べる必要があります。ハフ変換は特に効果的ですが、2000年の調査論文であるMicrosoft Researchのベクトル化アルゴリズム、オープンソースのエッジファインダーである「Outliner」とベクトライザーも役立つ場合があります。エッジエンハンスド画像データ を使用し、これらのリファレンスで説明されている方法の1つを使用してこれをベクトルのセットに変換すると、少なくともいくつかの数式と、存在する線の座標が得られます。次に、手を関心のあるセグメントに分割し、それらのセグメントに存在する行の数式を取得できます。
  5. 数式を一般的な形状に一致させるには、ある種の教師あり機械学習を使用します。関心のある形状の例は、これらのトレーニングデータです。また、この追加手順として、Ramer-Douglas-Peuckerアルゴリズムを使用して数式の複雑さを軽減することを検討することもできます。

お役に立てれば。ちなみに、将来について役立つ情報があれば、ぜひお知らせください。

于 2013-01-31T11:22:59.507 に答える
0

画像の例を教えてください。

関連するスケールのコントラストのみを保持するために、画像をぼかしたりバンドパスしたりする必要があります(つまり、ぼかしは小さすぎる線やしわを削除し、バンドパスはスケールが大きすぎる特徴も削除します)。

その後、ハフ変換を使用して、画像内の線の長さと方向を見つけることができます。

あるいは、線/しわ/暗い領域を検出してから画像をスケルトン化することが実行可能なアプローチである可能性があります。これにより、線の分岐点と終点が得られます。

于 2013-01-31T11:29:49.277 に答える