我正在为Android编写代码,以限制我从FAST检测器获得的关键点数量(现在我获得了大约9000个关键点)。根据响应,我想保留最好的500个关键点。我做了一个比较器,可以根据它们的响应对这些关键点进行排序。现在,我想找到一种方法来获取500个最佳关键点,并将它们放入新的列表中。
这是我的代码
// gets the keypoints from the detector, and puts them in a list
List<KeyPoint> pointstest = points1.toList();
// comparator orders the keypoints (check image for output)
order(pointstest);
// make a new list to put the 500 best keypoints in
List<KeyPoint> nieuw = new ArrayList<KeyPoint>();
因此,我现在需要用最佳点“重新创建”列表,但是我目前仍在解决此问题上。有人有建议吗?我可能正在考虑for循环,但是可以针对这些关键点实现它吗?
最佳答案
怎么样
List<KeyPoint> nieuw = new ArrayList<KeyPoint>(pointstext.subList(0, 500));