如何在iOS目标C中使用openCV的convexHull函数?

时间:2018-06-02 20:13:56

标签: ios objective-c opencv opencv3.0 opencv4ios

我是openCV的新手,并且一直试图在openCV库中使用凸包功能用于app(使用Objective-C),我需要知道函数参数的输入格式是什么,它&#39 ;非常令人困惑。这个函数是否会返回序列中的点?比如,如果我使用addLineToPoint绘制这个船体的bezier路径,是否可能?

1 个答案:

答案 0 :(得分:1)

一些示例代码:

std::vector<cv::Point> points;
//fill that vector with your points

std::vector<cv::Point> hull;
if (points.size()) {
    cv::convexHull(points, hull);
}

cv::Size size = cv::Size(w, h); 
//some size for the matrix where you will draw your convex hull

cv::Mat hullMask = Mat::zeros(size, CV_8UC1);
int hull_count = (int)hull.size();
if (hull_count) {
    const cv::Point* hull_pts = &hull[0];
    cv::fillPoly(hullMask, &hull_pts, &hull_count, 1, cv::Scalar(255));
}

此代码将帮助您创建凸包并绘制它。

Here您可以找到该功能的完整文档。它将根据“顺时针”参数返回序列中的点。默认情况下,它将是逆时针方向。