2016-03-31 5 views
2

私はGO boardを認識し、SGF fileを作成するAndroidアプリで作業しています。難しい背景のOpenCV検出広場

私はそれをワープするために、以下のような正確な線や石を見つけることができるようにするために、全体ボードを検出する必要があります。

  • キャニー別々のチャンネル

    Imgproc.Canny(channel, temp_canny, 30, 100); 
    
  • は(ビット単位を組み合わせたチャネルを分離:今私はOpenCVのRGBマットを使用して、次の操作を行い

    filledboard http://roelept82.eightytwo.axc.nl/pic/detect.png

    OR)すべてのチャネル。

    Core.bitwise_or(temp_canny, canny, canny); 
    
  • され、まだ私はいくつかの行は、あなたが下の画像に表示できるように消える傾向にあるとして、一貫してボードを検出することはできませんよボードの輪郭に

を見つけるボード上の黒い線や石はっきりと見えるが、ボードの端がいくつかの場所で欠けている。

filledboard http://roelept82.eightytwo.axc.nl/pic/canny.png

どのように私は、この検出を向上させることができますか?または私はボードを空にすることができます行く

  • *心に留めておくことが重要*

    は、ボードはカラー

  • に変わり行く...それを検出し、1が失敗した場合に、それらの間の切り替えの複数の方法を実装する必要があります又は完全に石
    で満たされ、これは私が
  • 背景は常に真っ白ではない基板上の外側黒線の検出に依存することができない意味

これはので、新しいインスピレーションがはるかにある、私はちょっとこれを解決するためのOpenCVを使用してインスピレーションを使い果たした私は

*更新* 23-05-2016

を検出したいpictures with go boardsの小さな集まりです感謝!!! その間、私は機械学習を使い始めました。最初の結果は素晴らしく、私はあなたの投稿を続けていますが、まだopencv実装を作成することを期待しています。

+0

私が正しく理解していれば、ボードの外側の境界だけを検出したいと思うでしょうか?もしそうでなければ、すべてを検出したいと思うのですが、その質問は広すぎるだけではなく、はるかに複雑になります。 –

+0

目標はボード上のすべての黒と白の石の位置を検出することです。 1つの方法は、正確なボードのコーナーを検出し、ボードを四角に反らせて、その石を検出することです。 2番目のステップは非常に簡単です(私の質問の最初のイメージはそのための動作検出アルゴリズムを示しています) – MaMiFreak

答えて

1

私は同じ問題に取り組んでいます!カメラは

  • ボードのときボード私は、単一のフレームからワープ・パラメータを推定することができます
  • 着実で安定している

    1. 私のアプローチは2つのことを仮定することです(再生する前に)まだ空です。これらのパラメータを使用して、ボードのエッジを遮っている石の数に関係なく、すべてのフレームをワープします。

    +0

    ありがとうございました!私はadroid appで作業しています。私の目標は、ゲーム中のいつでもそれを検出できることです。 openCVの実装を落とし、現在は良いデータセットをコンパイルしているマシンラーニングに行きましたが、小さなセットを使った結果はすでに有望です。/35417145?noredirect = 1#comment59488984_35417145(最終編集) – MaMiFreak

    関連する問題