opencv convexHull返回两次相同的点

时间:2016-03-14 11:08:28

标签: opencv convex-hull

我尝试使用convexHull来设置我的点的顺序。但结果是错的。

//image_points_queue.push_back(original_image_points);
vector<cv::Point2f> image_points = {
    { 585, 543 },
    { 643, 749 },
    { 767, 501 },
};

convexHull(image_points, image_points, false);

image_points变为&#34; 767,501&#34;,&#34; 643,749&#34;,&#34; 767,501&#34;。 我对此一无所知。请帮忙。

2 个答案:

答案 0 :(得分:1)

我使用另一个向量作为结果,代码工作正常。

vector<cv::Point2f> result_points;
vector<cv::Point2f> image_points = {
    { 585, 543 },
    { 643, 749 },
    { 767, 501 },
};

convexHull(image_points, result_points, false);

我使用的是Windows 10.不确定它是否依赖于平台。

答案 1 :(得分:-1)

它基本上给出一个封闭的船体,因此起点和终点是相同的。所以你需要忽略船体的最后一点。