gpt4 book ai didi

c# - 确定位图中的像素是否为 C# 中的任何绿色阴影

转载 作者:太空宇宙 更新时间:2023-11-03 23:02:08 25 4
gpt4 key购买 nike

我目前有以下代码来查看位图的像素:

public struct Pixel
{
public byte Blue;
public byte Green;
public byte Red;
public byte Alpha;

public Pixel(byte blue, byte green, byte red, byte alpha)
{
Blue = blue;
Green = green;
Red = red;
Alpha = alpha;
}
}

public unsafe void Change(ref Bitmap inputBitmap)
{
Rectangle imageSize = new Rectangle(0, 0, inputBitmap.Width, inputBitmap.Height);
BitmapData imageData = inputBitmap.LockBits(imageSize, ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb);

for (int indexY = 0; indexY < imageData.Height; indexY++)
{
byte* imageDataBytes = (byte*)imageData.Scan0 + (indexY * imageData.Stride);

for (int indexX = 0; indexX < imageData.Width; indexX++)
{
Pixel pixel = GetPixelColour(imageDataBytes, indexX);
}
}

inputBitmap.UnlockBits(imageData);
}

读取字节中的像素后,我希望能够确定该像素是否为任何绿色阴影。我在弄清楚应该用什么数学来确定特定阴影和绿色与被观察者之间的距离时遇到了一些问题。

提前感谢您的帮助。

最佳答案

其中纯绿色为 0,255,0 - 您需要做的是计算每个像素的 R、G 和 B 分量之间的差异并取它们的平均值。所以假设你有一个像素是 100,200,50(这是一个灰绿色:https://www.colorcodehex.com/64c832/) - R,G 和 B 差异将是 100,55,50 平均 68(这 3 个差异的总和除以3).该平均值越接近 0,它就越接近您的引用颜色。

然后您需要做的是选择一个“阈值”——允许您离引用颜色有多远并且仍然被认为足够接近,然后低于该阈值的任何东西都被视为绿色,并且您然后用它做任何你喜欢的事。

关于c# - 确定位图中的像素是否为 C# 中的任何绿色阴影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42720446/

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