我的目标是通过使用来自两个图像的匹配关键点来计算基本矩阵。现在我得到了很好的匹配点:

MatOfDMatch matches = new MatOfDMatch();
matcher.match(descriptor1,descriptor2, matches);

List<DMatch> matchesList = matches.toList();
List<DMatch> good_matches = new ArrayList<DMatch>();
org.opencv.core.Point pt1;
org.opencv.core.Point pt2;

//Then I definite good_dist here
//....


for(int i =0;i<matchesList.size(); i++)
 {
  if(matchesList.get(i).distance<good_dist)
  {
     good_matches.add(matchesList.get(i));
     pt1 = keypoints1.toList().get(matchesList.get(i).queryIdx).pt;
     pt2 = keypoints2.toList().get(matchesList.get(i).trainIdx).pt;
  }
}

现在我想将 pt1 和 pt2 传递给 MatOfPoint2f 以调用该函数:
Calib3d.findFundamentalMat(pt1, pt2, Calib3d.FM_8POINT);

有谁知道我该怎么办?
提前致谢!

最佳答案

创建点数组( array_point )并执行下一步:

MatOfPoint2f yourArray_of_MatofPoint2f= new MatOfPoint2f(array_point);

这是来自Java,如果这不起作用,请发布。

关于android - 如何将 Point 添加到 MatOfPoint2f?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15725644/

10-11 21:07