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