【问题标题】:How to use convexHull function of openCV in iOS objective C?如何在iOS目标C中使用openCV的convexHull函数?
【发布时间】:2018-11-12 14:53:52
【问题描述】:

我是 openCV 新手,一直在尝试在 openCV 库中为应用程序使用凸包函数(正在使用 Objective-C),我需要知道函数参数的输入格式是什么,这很令人困惑.这个函数是否按顺序返回点?就像,如果我使用 addLineToPoint 来绘制这个船体的贝塞尔路径,有可能吗?

【问题讨论】:

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


    【解决方案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 你可以找到该函数的完整文档。它将根据“顺时针”参数按顺序返回点。默认为逆时针方向。

    【讨论】:

    • 感谢代码和参考,我还想问一件事,如果这些点形成一个凹壳结构,我想要那个凹结构,有什么办法吗? ?更像是凹壳之类的东西?就像我给自己的手拍张照片,我希望这些点位于我手的边界上,这样连接这些点就可以勾勒出我手的轮廓。我们能做到吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-01
    • 2013-02-03
    • 1970-01-01
    • 2019-02-01
    • 1970-01-01
    • 2013-03-07
    相关资源
    最近更新 更多