我知道这是一个愚蠢的问题,但是要使用索引位置在数组中找到x和y的值,我们可以这样做吗?
int [,] Values = new int [Width,Height];
for (int Xcount = 0; Xcount < Width; Xcount++)
{
for (int Ycount = 0; Ycount < Height; Ycount++)
{
Color col = img.GetPixel(Xcount, Ycount);
if (col.R > 140 && col.G > 140 && col.B > 140)
{
Values[Xcount , Ycount]++;
file.WriteLine("X :" + Xcount + " Y :" + Ycount);
count++;
}
}
}
如何在索引位置0和最后一个索引位置获得X和Y的值,即count; 我需要将第一个和最后一个值用于进一步处理 提前谢谢!
答案 0 :(得分:0)
您是否在询问如何从单个位置值获取x
和y
索引?
如果是这样,我刚回答了here这样的问题。
答案 1 :(得分:0)
要查找高于(140,140,140)阈值的循环遇到的第一个和最后一个像素:
由于“count”仅针对高于阈值的像素递增,因此在循环结束时它不包含足够的信息来定位第一个/最后一个导致它递增的(x,y)位置。您需要在发现像素时保存/记住像素的X,Y位置。
因此,您需要保留一些额外的X,Y变量。当您遇到高于阈值的第一个像素时,将X,Y保存到firstX,firstY。每次遇到高于阈值的像素时,将X,Y存储到lastX,lastY。退出循环后,您将获得您要求的值。
但是,我仍然不确定你需要这些值。我想知道你是否真的试图找到一个包围阈值以上所有像素的矩形,在这种情况下你需要做一些类似于上面的事情,但是要独立处理X和Y.以(例如)minX = 9999,maxY = 9999,maxX = 0,maxY = 0开始。当像素高于阈值时,更新最小值/最大值以累积矩形的边界,即:if (X < minX) minX = X;
if (Y < minY) minY = Y;
if (X > maxX) maxX = X;
if (Y > maxY) maxY = Y;
然后在扫描结束时,您将有两个角(minX,minY)和(maxX,maxY)描述包含高于阈值的所有像素的矩形。