Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何检测位图中的像素是否为黑色_C#_Visual Studio 2013 - Fatal编程技术网

C# 如何检测位图中的像素是否为黑色

C# 如何检测位图中的像素是否为黑色,c#,visual-studio-2013,C#,Visual Studio 2013,我正在制作一个程序,我需要知道如何查看位图图像中的像素是很暗还是很黑。如果你能帮忙,非常感谢 //need help if (_Bitmap.GetPixel(c, d, Color.FromArgb(255) == 255)) mouse_event((int)Test.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); //need help 为了获得像素的颜色,应该使用GetPixel方法。 您可以使用Colorclass的方法获得亮度并检查颜色的“暗度”。 纯黑色的亮

我正在制作一个程序,我需要知道如何查看位图图像中的像素是很暗还是很黑。如果你能帮忙,非常感谢

//need help
if (_Bitmap.GetPixel(c, d, Color.FromArgb(255) == 255)) mouse_event((int)Test.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
//need help

为了获得像素的颜色,应该使用
GetPixel
方法。 您可以使用
Color
class的方法获得亮度并检查颜色的“暗度”。 纯黑色的亮度等于0,最大值为1

因此,您可以将亮度与某个阈值进行比较,例如0.02

if (_Bitmap.GetPixel(c,d).GetBrightness() < 0.02) { ... } 
if(_Bitmap.GetPixel(c,d).GetBrightness()<0.02){…}

为了获得像素的颜色,应该使用
GetPixel
方法。 您可以使用
Color
class的方法获得亮度并检查颜色的“暗度”。 纯黑色的亮度等于0,最大值为1

因此,您可以将亮度与某个阈值进行比较,例如0.02

if (_Bitmap.GetPixel(c,d).GetBrightness() < 0.02) { ... } 
if(_Bitmap.GetPixel(c,d).GetBrightness()<0.02){…}

你的问题要么非常简单,要么看似复杂

像素是否为黑色取决于像素所用的颜色模型。在RGB中,黑色像素由整数0表示。其他颜色模型对黑色有其他表示。在每种情况下,判断一个像素是否为纯黑色都是非常直接的。 然而,你也会问一个像素是否非常非常暗,这可能很棘手

如果你对黑暗有一个清晰的阈值(比如强度/发光小于10%),那么答案也是直截了当的。 这在具有单独强度分量的彩色模型中更容易实现,但在RGB中,您可能会使用以下近似值
redComponent<25&&greenComponent<25&&blueComponent<25


然而,如果你问一个像素是否被认为是暗的,那么我们将进入更复杂的领域。要确定一个像素是否被认为是暗的,您需要考虑相邻像素的值,并确定是否存在暗渐变。如果接近局部强度最大值,某些像素阴影看起来会很亮,但如果接近局部强度最小值,则看起来会很暗(请参见一个众所周知的示例)。同样地,与明亮物体相邻的非常暗的窄线可能看起来像物体的边缘,而不是图像中的暗元素。

你的问题要么非常简单,要么看似复杂

像素是否为黑色取决于像素所用的颜色模型。在RGB中,黑色像素由整数0表示。其他颜色模型对黑色有其他表示。在每种情况下,判断一个像素是否为纯黑色都是非常直接的。 然而,你也会问一个像素是否非常非常暗,这可能很棘手

如果你对黑暗有一个清晰的阈值(比如强度/发光小于10%),那么答案也是直截了当的。 这在具有单独强度分量的彩色模型中更容易实现,但在RGB中,您可能会使用以下近似值
redComponent<25&&greenComponent<25&&blueComponent<25

然而,如果你问一个像素是否被认为是暗的,那么我们将进入更复杂的领域。要确定一个像素是否被认为是暗的,您需要考虑相邻像素的值,并确定是否存在暗渐变。如果接近局部强度最大值,某些像素阴影看起来会很亮,但如果接近局部强度最小值,则看起来会很暗(请参见一个众所周知的示例)。同样地,与明亮物体相邻的非常暗的窄线可能看起来像物体的边缘,而不是图像中的暗元素