检测像素或其周围区域的亮度

本文关键字:区域 亮度 周围 像素 检测 | 更新日期: 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;        
}