OpenCV 中凸壳函数的输出向量是什么?
What is the output vector of the convexHull function in OpenCV?
C++:
void convexHull(InputArray points, OutputArray hull, bool clockwise=false, bool returnPoints=true);
OutputArray hull
给出的描述如下:
hull
– 输出凸包。它要么是索引的整数向量,要么是点的向量。在第一种情况下,hull
元素是原始数组中凸包点的从 0 开始的索引(因为凸包点集是原始点集的子集)。在第二种情况下,hull
元素是凸包点本身。
- 那么什么是索引的整数向量?
- 如果我使用输出数组作为
vector<vector<int>>
,我会得到什么? - 我可以打印结果吗?
回答您的具体问题:
- 索引
的整数向量(其中索引从 0 开始)是指示 InputArray 点的哪些点位于凸包点集中的索引。
您可以使用整数向量或点向量。在第一种情况下,您将获得允许访问给定输入点数组的实际点的索引。在第二种情况下,您可以直接从输出数组中读取点的坐标。
这个问题并不完全清楚,因为您没有提到要在哪里打印结果。假设您想在图像中显示它,则可以使用折线绘制凸包。具体来说(查看cv::p olylines了解更多信息):
void cv::polylines ( InputOutputArray img, InputArrayOfArrays pts, bool isClosed, const Scalar & color, int thickness = 1, int lineType = LINE_8, int shift = 0 )
要在控制台中打印点的坐标,假设输出向量是整数的向量,因此索引:
size_t hull_size = hull.size(); for (size_t i = 0; i < hull_size; i++) { std::cout << points[hull[i]] << std::endl; }
相关文章:
- 在 C++ 中输出枚举类类型的向量元素
- 为什么即使使用 for 循环遍历我的向量,它也没有输出到控制台?(C++)
- 尝试重载输出运算符时,我无法遍历对象向量
- 从 exprTk 获取向量作为输出
- 数组为此合并排序函数提供了正确的输出,但向量给出了不正确的输出.出了什么问题?
- 如何在C++中编写 ostream 的向量,它接收所有不同的输出流,如 cout、ostringstream 和 ofs
- C++向量排序给出0作为输出
- 以C++输出二维向量
- <T> 模板函数中的输出向量
- 为什么 std::accumulate 生成705032704作为输出,而不是向量中元素的总和?
- 在 Valgrind 输出中仍然可以访问 std 线程向量的块
- 从线程输出简单向量
- 使用向量时,当返回函数更改时,无法看到输出
- 具有用户定义函数的输出向量
- 矢量<int>的赋值和输出向量
- OpenCV 中凸壳函数的输出向量是什么?
- 提升精神业力 - 具有约束和传播失败的字符串的输出向量
- 列表指针类的输出向量
- 如何修复输入向量与输出向量相同时不清除输入向量的错误
- 当输出向量列表时,输出的量是平方的