我正在尝试编写一些代码,以使我可以传递图像(热图)并返回2d数组,可以将其放入excel以进行定量分析。我可以创建一个二维的Argb值数组,代表每个像素,但是我试图创建一个缩放器等效值。由于Argb值的变化(这不是真正的热量图),因此我正在使用的当前代码无法与我的代码配合使用。
public static class ColorBGRToScalarConverter
{
private static int MarginOfError;
public static int Convert(Color input)
{
int r = input.R;
int g = input.G;
int b = input.B;
var min = new[] { r, g, b }.ToList().Min();
if (b - 240 > 0 && r != 0)
{
MarginOfError += r;
r = 0;
}
// Handle errant values from JPG artifacts/blur/anti-aliasing or margin of error
if (r == min)
{
r = 0;
}
if (g == min)
{
g = 0;
}
if (b == min)
{
b = 0;
}
// Console.WriteLine($@"Margin of error is {MarginOfError}");
if (b == 255 && r == 0)
{
return g;
}
else if (g == 255 && r == 0)
{
return 255 - b + 255;
}
else if (b == 0 && g == 255)
{
return 511 + r;
}
else if (b == 0 && r == 255)
{
return 255 - g + 766;
}
else if (b == 0 && g == 0 && r != 0)
{
return 1023 + r;
}
throw new Exception("I should have found a value.");
}
}
}
我是否可以使用类似的过程为红色-蓝色创建代表整数的颜色表示(例如0-1279)。