2011-02-04 21 views
3

このような白黒画像があります(カラーオーバーレイは鉱山であり、取り除くことができます): enter image description here 私はどのように手を描く必要がありますか?C#でのエッジ検出

私の現在のアルゴリズム:かなりよく定義されたアウトラインの

 List<Point> edgePoints = new List<Point>(); 
     for (int x = 0; x < largest.Rectangle.Width && edgePoints.Count == 0; x++) { 
      //top 
      for (int y = 0; y < largest.Rectangle.Height - 3 && edgePoints.Count == 0; y++) { 
       if (colorGrid[x, y].ToArgb() == Color.White.ToArgb() && 
        colorGrid[x, y + 1].ToArgb() == Color.White.ToArgb() && 
        colorGrid[x, y + 2].ToArgb() == Color.White.ToArgb() && 
        colorGrid[x, y + 3].ToArgb() == Color.White.ToArgb() 
        ) { 
        edgePoints.Add(new Point(x, y)); 
        //g.DrawLine(new System.Drawing.Pen(Color.Orange), new Point(largest.Rectangle.X + x, largest.Rectangle.Y + y), new Point(largest.Rectangle.X + x, largest.Rectangle.Y + y + 3)); 
        break; 
       } 
      } 
      //bottom 
      for (int y = largest.Rectangle.Height - 1; y > 3 && edgePoints.Count == 0; y++) { 
       if (colorGrid[x, y].ToArgb() == Color.White.ToArgb() && 
        colorGrid[x, y - 1].ToArgb() == Color.White.ToArgb() && 
        colorGrid[x, y - 2].ToArgb() == Color.White.ToArgb() && 
        colorGrid[x, y - 3].ToArgb() == Color.White.ToArgb() 
        ) { 
        edgePoints.Add(new Point(x, y)); 
        //g.DrawLine(new System.Drawing.Pen(Color.Orange), new Point(largest.Rectangle.X + x, largest.Rectangle.Y + y), new Point(largest.Rectangle.X + x, largest.Rectangle.Y + y + 3)); 
        break; 
       } 
      } 
     } 

結果が、曲線の任意の場所であれば、そのエッジが検出されません。 I.E.、私が手を横にした場合、私はトップフィンガーとボトムフィンガーのエッジを取得しますが、それだけです。

これを修正して真のエッジを得るにはどうすればよいですか?

答えて

5

このようなプロジェクトをご覧ください:http://code.google.com/p/aforge/あなたは多くの助けとなり、ホイールを再発明する必要はありません!

+0

私はaforge.netを使用していますが、私はそれがblob検出を行う方法の例だけを見ています。これは私が望むものではありません。 – Malfist

+0

実際、私はエッジフィルタを見つけました。 – Malfist

+0

それはかなり良いライブラリと彼らはほとんどのものをカバーしている。がんばろう! – StefanE

0

解決策がC++にありますhttp://outliner.codeplex.com/ しかし、それをC#に変換するのは簡単な作業ではありません。アルゴリズムはかなり複雑です。

関連する問題