gpt4 book ai didi

c# - 如何从图像中的特定颜色中查找像素数?

转载 作者:行者123 更新时间:2023-11-30 20:09:08 25 4
gpt4 key购买 nike

所以我正在尝试制作一个程序,它可以找出其中有多少个特定颜色的像素。这些图像是用相机拍摄的照片,然后它们的一些区域已经在 photoshop 上标记了,我需要找到这个像素的确切数量。但我几乎没有问题。我正在使用 getPixel(x,y) 但是我正在与我想要的 Color.FromArgb(red, green, blue) 进行比较但是......我的第一个问题是颜色有点不同例如我想要找出颜色RGB 116,110,40 但是当你在 photoshop 上用这种颜色绘制时,一些像素会得到一些不同的颜色,比如 RGB 115,108,38(和其他类似的),我也想包括这个。所以我终于想出了这段代码(但似乎 id 现在可以正常工作):

public Form1()
{
InitializeComponent();
}

Bitmap image1;
int count=0;
int red, green, blue;
int redt, greent, bluet;
double reshenie;

private void button1_Click(object sender, EventArgs e)
{
try
{
red = int.Parse(textBox1.Text);
green = int.Parse(textBox2.Text);
blue = int.Parse(textBox3.Text);

// Retrieve the image.
image1 = new Bitmap(@"C:\bg-img.jpg", true);
double widht, height, pixel ;
int x, y;
MessageBox.Show(pixel.ToString());

// Loop through the images pixels
for (x = 0; x < image1.Width; x++)
{
for (y = 0; y < image1.Height; y++)
{
Color pixelColor = image1.GetPixel(x, y);
redt = pixelColor.R;
greent = pixelColor.G;
bluet = pixelColor.B;


if ((red+10>=redt) && (red-10>=redt))//i used +-10 in attempt to resolve the problem that i have writed about the close colours
{

if ((green + 10 >= greent) && (green - 10 >= greent))
{
if ((blue + 10 >= bluet) && (blue - 10 >= bluet))
{
count += 1;

}
}
}
}
}

pictureBox1.Image = image1;

MessageBox.Show("Imashe " + count.ToString());
count = 0;

}
catch (ArgumentException)
{
MessageBox.Show("There was an error." +
"Check the path to the image file.");

}

}

问题是我没有得到我期望的结果。例如,当我必须获得 1000 像素时,我或多或少会得到,但我找不到我的错误在哪里。所以如果有人能告诉我我做错了什么。感谢您提前提供的所有帮助。

最佳答案

试试这个循环:

int epsilon = 10;

for (x = 0; x < image1.Width; ++x)
{
for (y = 0; y < image1.Height; ++y)
{
Color pixelColor = image1.GetPixel(x, y);
redt = pixelColor.R;
greent = pixelColor.G;
bluet = pixelColor.B;

if (Math.Abs(redt - red) <= epsilon &&
Math.Abs(greent - green) <= epsilon &&
Math.Abs(bluet - blue) <= epsilon)
{
++ count;
}
}
}

其中 epsilon 是每个 channel 的像素颜色和目标颜色之间的最大差异。

关于c# - 如何从图像中的特定颜色中查找像素数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6424579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com