我在数组中找到/ soritng点时遇到问题。当我想找到最接近基点(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)
答案 0 :(得分:0)
你找不到它,因为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;
}