2016-11-14 67 views
0

我試圖按照以下步驟創建一個墊目標:的Java opencv的墊構造不匹配

// ROI by creating mask for the trapezoid 
Mat mask = Mat(frame.rows(), frame.cols(), CvType.CV_8UC1, new Scalar(0)); 

但是我得到以下編譯時錯誤:

The method Mat(int, int, int, Scalar) is undefined for the type 

而在Mat.class文件,我可以肯定請參閱以下功能簽名:

// 
// C++: Mat::Mat(int rows, int cols, int type, Scalar s) 
// 

// javadoc: Mat::Mat(rows, cols, type, s) 
public Mat(int rows, int cols, int type, Scalar s) 
{ 

    nativeObj = n_Mat(rows, cols, type, s.val[0], s.val[1], s.val[2], s.val[3]); 

    return; 
} 

這是一個錯誤還是?

+1

應該不會是'墊面膜=新墊(...)'擺在首位? – Miki

+0

你說得對,我很愚蠢,我將代碼從C++轉換爲Java,因此是錯誤的。如果你寫的話,我會接受它作爲答案。謝謝。 –

回答

1

簽名是正確的。 在Java中,你需要使用new關鍵字來創建新的對象:

Mat mask = new Mat(frame.rows(), frame.cols(), CvType.CV_8UC1, new Scalar(0));