我正在编写一个c#程序,我是c#中的菜鸟,虽然我在编程方面很好,但我知道C和C ++。我的程序基本上扫描图像并定位该图像中的圆圈,并根据其中心的坐标区分它们。现在我想让它找到圆圈颜色的亮度。我认为它足以检查中心像素的亮度,甚至是围绕圆圈的一些像素。但到目前为止,我无法做到这一点。我尝试在颜色结构中使用GetBrightness()并获得HUE但我无法指定我想要它处理的像素。我希望自己清楚明白并向我询问更多细节。我将再次提到我是C#的菜鸟,我所知道的只有C和C ++
答案 0 :(得分:0)
请查看此答案,了解从RGB值计算亮度的公式:Formula to determine brightness of RGB color
在C#中,这看起来像是:
public double GetBrightness(Color color)
{
return (0.2126*color.R + 0.7152*color.G + 0.0722*color.B);
}
如果您想计算圆圈中所有颜色的亮度,那么您可以执行以下操作:
public double GetAverageBrightness(IEnumerable<Color> colors)
{
int count = 0;
double sumBrightness = 0;
foreach (var color in colors)
{
count++;
sumBrightness += GetBrightness(color);
}
return sumBrightness/count;
}