objective-c - OpenCV:如何在目标 c 中使用凸包?
问题描述
我是 openCV 的新手,并且一直在尝试在 openCV 库中为应用程序使用凸包函数(正在使用 Objective-C),我需要知道函数参数的输入格式是什么,这很令人困惑。这个函数是否按顺序返回点?就像,如果我使用 addLineToPoint 来绘制这个船体的贝塞尔路径,有可能吗?
解决方案
一些示例代码:
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));
}
此代码将帮助您创建凸包并绘制它。
在这里您可以找到该功能的完整文档。它将根据“顺时针”参数按顺序返回点。默认情况下,它将是逆时针的。
推荐阅读
- python - 如何连接到 Pyautocad 中的现有文档?
- java - 将 CalendarView 值与 Firebase 日期值匹配,然后在 Recycler/CardView 中显示?
- excel - VBA excel计算文件夹(和文件)总数
- java - 使用 ErrorController 处理 http 错误
- python - python-socketio socketio.exceptions.ConnectionError:一个或多个命名空间无法连接
- authentication - 通过 JWT 进行的共享秘密身份验证是否安全?
- sql - 聚合非按列分组检查是否有任何值符合条件
- rust - 如何使用可能仅在运行时才知道的常量参数创建结构?
- google-bigquery - 如何强制过期的大查询分区立即删除?
- prisma - 我如何编写一个 Prisma findFirst where 子句 OR 的两个 AND 或者 prisma 如何处理未定义的?