C# 使用红色值计算黑色像素

C# 使用红色值计算黑色像素,c#,C#,我在一个只有黑/白值的图像上使用了下面的代码,所以如果颜色是黑色,它应该被计数,但是下面的if语句不起作用。是写对了还是我只是用了一个好的逻辑 for (int y = 0; y < image.Height; y++) { Color pixel = image.GetPixel(x, y); if(pixel.R > 0) { //some code here } } for(int y=0;y0) { //这里有一些代码 }

我在一个只有黑/白值的图像上使用了下面的代码,所以如果颜色是黑色,它应该被计数,但是下面的if语句不起作用。是写对了还是我只是用了一个好的逻辑

for (int y = 0; y < image.Height; y++)
{  
    Color pixel = image.GetPixel(x, y);
    if(pixel.R > 0)
    {
        //some code here
    }
}
for(int y=0;y0)
{
//这里有一些代码
}
}

假设没有透明度,请尝试

if(pixel == Color.Black)
    ....
pixel.R>0
只检查颜色的
Red
分量。对于
黑色
,它是
0


对于条形码,最好使用一些阈值来区分颜色,例如:

int threshold = (255 + 255 + 255) / 2;
if (pixel.R + pixel.G + pixel.B < threshold)
    .... 
int阈值=(255+255+255)/2;
if(像素.R+像素.G+像素.B<阈值)
.... 

假设没有透明度,请尝试

if(pixel == Color.Black)
    ....
pixel.R>0
只检查颜色的
Red
分量。对于
黑色
,它是
0


对于条形码,最好使用一些阈值来区分颜色,例如:

int threshold = (255 + 255 + 255) / 2;
if (pixel.R + pixel.G + pixel.B < threshold)
    .... 
int阈值=(255+255+255)/2;
if(像素.R+像素.G+像素.B<阈值)
.... 


R的值是多少?如果颜色为黑色,则应计数?什么?对于黑色R、G、B将为
0
。您检查
>0
因此它不起作用。您是否没有任何灰度?也许是因为消除混叠?我有灰度,并使用了大津阈值算法使其成为黑白图像,所以“R”的值应该是0@SriramSakthivel你是对的,但即使转换成它不起作用,
R
的值是多少?如果颜色是黑色,它应该被计数吗?什么?对于黑色R、G、B将为
0
。您检查
>0
因此它不起作用。您是否没有任何灰度?也许是因为消除混叠?我有灰度,并使用了大津阈值算法使其成为黑白图像,所以“R”的值应该是0@SriramSakthivel你是对的,但即使它不起作用,我也在尝试,它已经消失了。不过,需要做一些更改:/@newuserhere以尽量减少混淆,你能提供一个示例图像吗?你可以很容易地找到它,只要在google:P上键入“bar code”。我需要If语句来计算bar的条数codes@newuserhere好的,对于条形码,在一个简单的场景中,检查
黑色可能会起作用。但在现实生活中,最好为
R
G
B
组件使用一些阈值。类似于
if pixel.R<…&&像素.G<…&pixel.B<…)
。我已经在模糊图像的情况下使用了大津算法,生成的图像是纯黑/白的。我正在尝试,它已经消失了。不过做了一些更改:/@newuserhere为了尽量减少混淆,你能提供一个示例图像吗?你可以很容易地找到它,只需键入“条形码”在google:P上,我需要If语句来计算bar的条数codes@newuserhere好的,对于条形码,在一个简单的场景中,检查
黑色可能会起作用。但在现实生活中,最好为
R
G
B
组件使用一些阈值。类似于
if pixel.R<…&&像素.G<…&pixel.B<…)
。我已经在模糊图像的情况下使用了大津算法,得到的图像是纯黑/白的