首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java中OpenCV 3.0 RC1的findHomography函数不起作用

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

Stack Overflow用户
提问于 2015-06-03 16:58:53
回答 1查看 2.9K关注 0票数 0

我想用Java语言中的OpenCV来计算图像的单应性,但它抛出了异常:OpenCV Error: Bad argument (The input arrays should be 2D or 3D point sets) in cv::findHomography

我的代码是这样的(因为代码很长,所以我只发布了代码的一部分):

代码语言:javascript
运行
复制
    ....
    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错误还是代码有问题?

如果有人知道,请告诉我如何解决。提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2017-03-13 16:13:26

代码语言:javascript
运行
复制
if (obj.isEmpty() || scene.isEmpty()) {
        LOGGER.debug("No matches found at all.....");

    }

obj或scene的列表将为空。当列表为空时,尽量避免使用findHomography。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30615342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档