0

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

任何帮助将不胜感激。

4

2 回答 2

0

我通过使用链表全局变量解决了这个问题,每当我需要添加或删除点时,我都会在该链表中执行此操作,然后调用 MatOfPoint.fromList() 中的方法,该方法从列表中加载矩阵。它不漂亮,但它可以满足我的需要。

于 2012-07-26T21:45:08.333 回答
0

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

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

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

allContours.push_back(oneContour);
于 2014-01-24T23:48:39.940 回答