Esempio n. 1
0
 public Edge(Bitmap bitmap, EdgeTemplate template)
 {
     Source = bitmap;
     Type = template.Type;
     Data = template.Points.Select(x => bitmap.GetPixel(x.X, x.Y)).ToArray();
 }
Esempio n. 2
0
 private static bool MatchesInPosition(Bitmap[,] result, List<EdgeTemplate> templates, Bitmap newBmp, int x, int y)
 {
     foreach (var template in templates)
     {
         var dir = Edge.ToDirection(template.Type);
         var x2 = dir.X + x;
         var y2 = dir.Y + y;
         if (result[x2, y2] != null)
         {
             var reverseTemplate = new EdgeTemplate(Edge.Opposite(template.Type), template.Width, template.Height);
             var edge = new Edge(newBmp, template);
             var reverseEdge = new Edge(result[x2, y2], reverseTemplate);
             if (!reverseEdge.Matches(edge)) { return false; }
         }
     }
     return true;
 }