2012-07-26 28 views
0

我想在opencv for android中添加點到MatOfPoint2f,但我不確定最有效的方法來做到這一點。我打算調用MatOfPoint2f.toArray(),然後將其添加到數組列表,然後添加我的元素,然後調用MatOfPoint2f.fromArray()。我嘗試過使用MatOfPoint2f方法,但有時我會添加超出數組邊界的元素,因此無法工作。我也嘗試調用toList()方法並使用add方法,但它給我的列表不能添加或放入元素。我看到了墊子中的push_back方法,我相信這也不起作用,因爲它將元素添加到較低的行,並且我相信所有的點都存儲在第0行的列中。給MatOfPoint2f添加點

任何幫助都會不勝感激。

+0

當你說加點,你到底是什麼意思?他們總是被添加到矩陣的底部嗎?他們可以去哪裏?如果你在某處插入一個元素,那麼之後的所有元素都需要在一個點上移動?插入的規則是什麼?有些版本比其他版本更容易。 – Hammer 2012-07-26 17:25:58

回答

0

我通過使用鏈表全局變量解決了這個問題,每當我需要添加或刪除點時,我都會在該鏈表中執行該操作,然後調用MatOfPoint.fromList()中的方法從列表中加載該矩陣。這不是很美,但它做到了我需要的。

0

剛剛有這個相同的問題,並得到了(我認爲)一個更好的答案。我有:

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

一旦我有一組在oneContour值的,我現在用的就是:

allContours.push_back(oneContour);