【发布时间】:2013-10-26 00:19:24
【问题描述】:
在我的应用程序中,我加载了一张图片,我希望能够检测到相似的颜色。因此,如果我选择一种颜色,我希望应用程序能够找到具有相同(或几乎相同)颜色的所有像素。这是我为检测系统编写的内容,该检测系统在鼠标单击点和位图末端之间的垂直方向上进行查看。
for (int y = mouseY; y < m_bitmap.Height; y++)
{
Color pixel = m_bitmap.GetPixel(mouseX, y);
//check if there is another color
if ((pixel.R > curcolor.R + treshold || pixel.R < curcolor.R - treshold) ||
(pixel.G > curcolor.G + treshold || pixel.G < curcolor.G - treshold) ||
(pixel.B > curcolor.B + treshold || pixel.B < curcolor.B - treshold))
{ //YESSSSS!
if ((y - ytop > minheight)&&(curcolor != Color.White)) //no white, at least 15px height
{
colorlayers.Add(new ColorLayer(curcolor, y - 1, ytop));
}
curcolor = pixel;
ytop = y;
}
}
这是最好的方法吗?不知何故,它看起来不太适合黄色。
【问题讨论】:
-
请解释
I want to be able to detect similair colors?你想要的输出是什么样的?您只是要求帮助您更正您的if statement logic吗?您是否希望从鼠标单击位置向下看?你的意思是水平你的颜色不会改变?您可能已经回答了所有这些问题......但至少我无法在您的问题中清楚地看到这些事情。