本文整理汇总了C#中Pixel.Any方法的典型用法代码示例。如果您正苦于以下问题:C# Pixel.Any方法的具体用法?C# Pixel.Any怎么用?C# Pixel.Any使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Pixel
的用法示例。
在下文中一共展示了Pixel.Any方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetCorners
private static Pixel[] GetCorners(Bitmap image, List<Pixel> square)
{
// top left, top right, bottom left, bottom right
Pixel[] corners = new Pixel[4] { null, null, null, null };
int offset = 5;
List<KeyValuePair<Pixel, double>> keys = new List<KeyValuePair<Pixel, double>>();
foreach (Pixel pixel in square)
{
List<Pixel> adj = GetNeighBours(image, pixel.GetX(), pixel.GetY());
if (adj.Count == 4 &&
pixel.GetColor().Equals(adj.ElementAt(0).GetColor()) &&
pixel.GetColor().Equals(adj.ElementAt(1).GetColor()) &&
pixel.GetColor().Equals(adj.ElementAt(2).GetColor()) &&
pixel.GetColor().Equals(adj.ElementAt(3).GetColor()))
{
continue;
}
double rank = 0;
for (int x = Math.Max(0, pixel.GetX() - offset); x <= Math.Min(image.Width-1, pixel.GetX() + offset); x += 1)
{
for (int y = Math.Max(0, pixel.GetY() - offset); y <= Math.Min(image.Height-1, pixel.GetY() + offset); y += 1)
{
if (image.GetPixel(x, y).Equals(pixel.GetColor()))
{
rank += 1;
}
}
}
keys.Add(new KeyValuePair<Pixel, double>(pixel, rank));
}
int i = 1;
Pixel p;
int minDistance = 6;
IEnumerable<KeyValuePair<Pixel, double>> query = keys.OrderBy(x => x.Value);
if (query.Count() == 1)
{
Console.WriteLine("Found isolated pixel at {0},{1}", query.ElementAt(0).Key.GetX(), query.ElementAt(0).Key.GetY());
Console.ReadLine();
Environment.Exit(1);
}
corners[0] = query.ElementAt(0).Key;
p = query.ElementAt(i).Key;
while (corners.Any(q => q != null && GetDistance(q, p) < minDistance))
{
i += 1;
p = query.ElementAt(i).Key;
}
corners[1] = p;
p = query.ElementAt(i).Key;
while (corners.Any(q => q != null && GetDistance(q, p) < minDistance))
{
i += 1;
p = query.ElementAt(i).Key;
}
corners[2] = p;
p = query.ElementAt(i).Key;
while (corners.Any(q => q != null && GetDistance(q, p) < minDistance))
{
i += 1;
p = query.ElementAt(i).Key;
}
corners[3] = p;
return corners;
}