【问题标题】:can cv::convexHull be applied to double-precision points datacv::convexHull 能否应用于双精度点数据
【发布时间】:2020-04-04 18:35:44
【问题描述】:

以下代码可以正常工作:

typedef cv::Point cvp;

    std::vector <cvp> points{ cvp(0, 0), cvp(1, 0), cvp(0, 1), cvp(0.5, 0.5) };
    std::vector<cvp> hullPoints;

    cv::convexHull(points, hullPoints);

但是,当我更改cvp 的定义时:

typedef cv::Point2d cvp;  // cvp is now a double-precision point

程序在进入cv::convexHull 过程时崩溃。好像 要么 cv::convexHull 可能只为整数值点调用,要么我做错了什么。

我在 OpenCV 文档中没有发现任何关于这个问题的信息。

【问题讨论】:

    标签: c++ opencv convex-hull


    【解决方案1】:

    convexHull 仅适用于Point2i(与Point 相同)和Point2f。 参考code

    CV_Assert(total >= 0 && (depth == CV_32F || depth == CV_32S));
    

    因此您可以使用浮点值,但它们必须是 float,而不是 double

    typedef cv::Point2f cvp;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-23
      • 2011-02-26
      • 1970-01-01
      • 2015-05-17
      • 2011-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多