将点添加到MatOfPoint2f

时间:2012-07-26 17:15:00

标签: android arrays opencv

我正在尝试在opencv for android中为MatOfPoint2f添加点,但我不确定最有效的方法来执行此操作。我想调用MatOfPoint2f.toArray(),然后将其添加到arraylist,然后添加我的元素,然后调用MatOfPoint2f.fromArray()。我曾尝试使用MatOfPoint2f方法put,但有时我会添加超出数组边界的元素,因此无法正常工作。我也试过调用toList()方法并使用add方法,但是它给我的列表不能在其中添加或放置元素。我在mat中看到了方法push_back,我确信这也不会起作用,因为它将元素添加到较低的行,我相信所有的点都存储在第0行的列中。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

我通过使用链表全局变量来解决它,每当我需要添加或删除点时,我在该链表中进行,然后调用MatOfPoint.fromList()中的方法,该方法从列表中加载矩阵。它并不漂亮,但它可以满足我的需求。

答案 1 :(得分:0)

刚刚遇到同样的问题并且(我认为)得到了更好的答案。我有:

MatOfPoint2f allContours = new MatOfPoint2f();
MatOfPoint2f oneContour = new MatOfPoint2f();

一旦我在oneContour中有一组值,我使用的是:

allContours.push_back(oneContour);