2016-07-30 136 views
3

我正在嘗試將double[][]轉換爲的OpenCV積分是一個double[4][2]其座標爲四點。 我已經試過:在Java中爲MatOfPoint變量添加值

MatOfPoint sourceMat = new MatOfPoint(); 
    for (int idx = 0; idx < 4; idx++) { 
    (sourceMat.get(idx, 0))[0] = pointsOrdered[idx][0]; 
    (sourceMat.get(idx, 0))[1] = pointsOrdered[idx][1]; 
} 

sourceMat值保持不變。 我試圖逐個添加值,因爲我還沒有找到其他選項。

我該怎麼辦?有沒有簡單的方法來訪問和修改MatOfPoint變量值?

感謝

+0

什麼是MatOfPoint數據類型,是這種類型的OpenCV? –

+0

是的,我忘記說了,對不起。我已經更新了這個問題。 – andraga91

+0

你爲什麼使用MatOfPoint?您沒有使用MatOfPoint的點型輸入? –

回答

1

org.opencv.core.MatOfPoint預計org.opencv.core.Point對象,但它存儲點的屬性值(X,Y)不是Point對象本身

如果轉換你的雙[] [] pointsOrdered數組ArrayList的

ArrayList<Point> pointsOrdered = new ArrayList<Point>(); 
pointsOrdered.add(new Point(xVal, yVal)); 
... 

如果您有像這樣的訂單,您可以使用此方法從

MatOfPoint sourceMat = new MatOfPoint(); 
sourceMat.fromList(pointsOrdered); 
//your sourceMat is Ready. 
+0

它的工作原理。你救了我,謝謝! – andraga91