gpt4 book ai didi

java - Java中OpenCV 3.0 RC1的findHomography函数不起作用

转载 作者:行者123 更新时间:2023-12-01 11:28:41 28 4
gpt4 key购买 nike

我想在Java中使用OpenCV计算图像的单应性,但它​​抛出异常:OpenCV错误:cv::findHomography中的参数错误(输入数组应该是2D或3D点集)

我的代码是这样的(因为代码很长我只贴出部分代码):

    ....
List<Point> obj = new ArrayList<>();
List<Point> scene = new ArrayList<>();

KeyPoint[] _keypoints_object = keypoints_object.toArray();
KeyPoint[] _keypoints_scene = keypoints_scene.toArray();

for (int i = 0; i < good_matches.size(); i++) {
obj.add(_keypoints_object[good_matches.get(i).queryIdx].pt);
scene.add(_keypoints_scene[good_matches.get(i).trainIdx].pt);
}

MatOfPoint2f _obj = new MatOfPoint2f();
_obj.fromList(obj);
MatOfPoint2f _scene = new MatOfPoint2f();
_scene.fromList(scene);

**Mat H = Calib3d.findHomography(_obj, _scene, Calib3d.RANSAC, 3);**
....

编译过程中没有错误,我已经声明了一个2D Point,即MatOfPoint2f并且编译器被接受,但是当运行代码时它会抛出异常。原因是什么,是 OpenCV bug 还是代码有问题?

如果有人知道请告诉我如何解决。预先感谢!

最佳答案

if (obj.isEmpty() || scene.isEmpty()) {
LOGGER.debug("No matches found at all.....");

}

对象或场景列表将为空。当列表为空时,尽量避免 findHomography。

关于java - Java中OpenCV 3.0 RC1的findHomography函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30615342/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com