我在数组中查找/索取点有问题。当我想找到最接近基准点(0,0)的点时:
CvPoint2D32f[] corners;
...
Cv.FindChessboardCorners(...)
...
int min = Array.IndexOf(corners, corners.Min(p => p.X + p.Y));
并且我试图显示该点的索引-我在textBox上获得“-1”值,就像该数组为空。
实际上不是,因为我可以输入以下内容显示其中的一个元素:
this.textBox1.Text = Convert.ToString(corners[0]);
我进入textBox:
CvPoint2D32f (x:179,143 y:60,15205)
最佳答案
您找不到它,因为Min
在此实例而非对象中返回总和,因此返回-1。
您将不得不自己遍历它...
private int IndexOfMinPoint(CvPoint3D32f[] points) {
int lowestValue = points[0].x + points[0].y;
int lowestValueIndex = 0;
for (int i = 1; i < points.length; i++) {
int newLowestValue = points[i].x + points[i].y;
if ( newLowestValue < lowestValue) {
lowestValue = newLowestValue;
lowestValueIndex = i;
}
}
return lowestValueIndex;
}
关于c# - 通过X和Y从数组中查找点的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22268500/