我寻求优化我的小程序的性能,该功能依赖于检测与给定示例最相似的图像。问题是,我使用的方法非常慢,可能会使用一些重做。
我还发现我无法使用Parallel.For
来计算相似度值,因为您已经从Parallel.ForEach
周期调用了下面看到的函数。呃。
我的相似性方法:
public static double isItSame(Bitmap source, Color[,] example)
{
double rez = 0;
for (int x = 20; x < 130; x += 3)
{
for (int y = 10; y < 140; y += 3)
{
Color color1 = source.GetPixel(x, y);
rez += Math.Abs(color1.R - example[x, y].R) + Math.Abs(color1.G - example[x, y].G) + Math.Abs(color1.B - example[x, y].B);
}
}
return rez;
}
非常感谢优化此解决方案的任何帮助。我自己优化它的方法是只做x + 3而不是x ++,对y来说也是如此,但是它导致整体效果不佳。诶。