2013-09-24 28 views
4

我想轉換從C++到Java的一些OpenCV的代碼,但我被困在此代碼:墊減法在Java中

Mat matXyz; // some Mat 
Mat result; // some other Mat 
// ... set above mats to some values ... 
result = Mat::ones(matXyz.size(), CV_32F) - result; 

首先,我真的不明白,最後甚至行。其次,我不知道如何將此行轉換爲Java(OpenCV 2.4.6),因爲在C++中沒有重載操作符,並且在Java類中找不到任何可比較的方法(請參閱OpenCV Javadoc)。

將此轉換爲Java的最佳方式是什麼?

+2

你已經找到了文檔,那麼你得到了懶惰.. http://docs.opencv.org/java/org/opencv/core/Core.html#subtract(org.opencv.core.Mat,%20org。 opencv.core.Mat,%20org.opencv.core.Mat) – berak

+0

我沒看過Core類..下次應該更加小心:D謝謝 – kel

+2

@berak那個鏈接已經過時了; OpenCV文檔(尤其是Java文檔)出了名的版本變化,鏈接腐爛等等。 NB。我不會打電話給他們迷失在他們「懶惰」。 – vaxquis

回答

7

org.opencv.core.Core類中有矩陣運算,包括減法運算符。

Mat endResult; 
Core.subtract(Mat.ones(matXyz.size(),CvType.CV_32F),result,endResult); 

你的代碼的最後一行創建充滿了那些矩陣,大小相同matXyz,其中數據是浮點數。這些都是在您鏈接的文檔中描述的。