当我有一个存储轮廓点的变量时:
<vector<vector<Point>> contours;
有点/坐标存储在:
contours[0][0].x; contours[0][0].y;
contours[0][1].x; contours[0][1].y;
...
contours[0][n].x; contours[0][n].y;
但是没有点/坐标存储在:
contours[1][0].x; contours[1][0].y;
contours[1][1].x; contours[1][1].y;
...
contours[1][n].x; contours[1][n].y;
或
contours[n][0].x; contours[n][0].y;
contours[n][1].x; contours[n][1].y;
...
contours[n][n].x; contours[n][n].y;
那么为什么我们需要一个点矢量矢量而不是一个点矢量? 点的向量是否足够?但openCV想要一个矢量点矢量。
答案 0 :(得分:3)
对于你的第一个问题,为什么在轮廓[n] [k]中没有为所有n&gt;存储轮廓点? 0,轮廓矢量中可能只有一个轮廓,即轮廓[0]。
向量中向量的原因是因为
UITableViewCell
嵌套在第一个向量内的只存储一个轮廓。 OpenCV使用
vector<Point>
存储多个轮廓。当OpenCV执行findContours()时,这是必需的。因为它需要使用多个轮廓来表示连接的组件。