检测像素或其周围区域的亮度
本文关键字:区域 亮度 周围 像素 检测 | 更新日期: 2023-09-27 18:25:44
我正在写一个c#程序,我是c#的新手,虽然我在编程方面很好,但我知道c和c++。我的程序基本上是扫描图像,定位图像中的圆圈,并根据其中心的坐标来区分它们。现在我想让它找到圆圈颜色的亮度。我认为检查中心像素的亮度就足够了,甚至可以检查圆周围的一些像素。但到目前为止我还做不到。我试着在颜色结构中使用GetBrightness()并获得HUE,但我无法指定我希望它在哪个像素上工作。我希望我能澄清自己,并询问我更多的细节。我将再次提到,我是C#中的一个noob,我只知道C和C++
看看这个答案,了解从RGB值计算亮度的公式:确定RGB颜色亮度的公式
在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;
}