下面的代码运行良好:
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文档中找不到关于这个问题的任何内容。
发布于 2019-12-11 21:15:14
convexHull仅适用于Point2i (与Point相同)和Point2f。参考code:
CV_Assert(total >= 0 && (depth == CV_32F || depth == CV_32S));因此,您可以使用浮点值,但它们必须是float,而不是double
typedef cv::Point2f cvp;https://stackoverflow.com/questions/59286458
复制相似问题