C ++:
void convexHull(InputArray points, OutputArray hull, bool clockwise=false, bool returnPoints=true);
OutputArray hull
上的说明如下:
hull
- 输出凸包。它是指数的整数向量或点的向量。在第一种情况下,hull
元素是原始数组中凸包点的从0开始的索引(因为凸包点集是原始点集的子集)。在第二种情况下,hull
元素是凸包点本身。
vector<vector<int>>
,我该怎么做?答案 0 :(得分:0)
回答您的具体问题:
索引的整数向量(其中索引从0开始)是指示来自InputArray点的哪些点位于凸包外壳点中的指数。
您可以使用整数向量或点向量。在第一种情况下,您将获得允许在给定输入点数组的情况下访问实际点的索引。在第二种情况下,您可以直接读取输出数组中点的坐标。
这个问题并不完全清楚,因为您没有提到要打印结果的位置。假设您想要在图像中显示它,您可以使用折线绘制凸包。具体而言(请查看cv::polylines了解更多信息):
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;
}