如何检索轮廓点 - opencv?
我的图像有三个对象(不规则形状) 我找到了上面三个物体的轮廓。
**我的声明 - 轮廓**
vector<vector<Point>> contours;
所以我得到了下面的对象坐标
contours.[size] = 3
[capacity ] = 14
+[0] {size = 330 }
+[1] {size = 240 }
+[2] {size = 654 }
这里我有三个轮廓,大小为330,240,654
现在我的疑问是如何将3个物体的每个轮廓点复制到矢量?
我想在calcOpticalFlowPyrLK
函数中将此轮廓点用作prevPts
或者可以做些什么?
答案 0 :(得分:1)
- 对我上述评论的更多解释。
calcOpticalFlowPyrLK()
可以直接使用vector<Point>
或vector<Point2f>
作为参数prevPts
。
prevPts
- 需要找到流量的2D点的矢量;点坐标必须是单精度浮点数。
也就是说,您只需要使用contours[0]
,contours[1]
和contours[2]
作为3个对象(它们的类型为vector<Point>
)并将它们传递给{{1 }}
答案 1 :(得分:0)
我只想添加一个小解释:你的轮廓是矢量的矢量。它有3个元素,这些元素中的每一个都是点的向量(可以使用.x和.y访问)。这正是prevPts所要求的。 通过向函数发送contour [i],您将发送第i个点向量。 见这里:http://docs.opencv.org/modules/video/doc/motion_analysis_and_object_tracking.html