2017-12-27 1177 views
0

我正在使用的OpenCV的KNN findNearest函數,該函數在下面的參數的返回值:從響應和返回DIST訪問從OpenCV的函數C++ NDK

Mat response; 
Mat dist; 

knn->findNearest(testFeature, K, noArray(), response, dist); 

輸出是類型OutputArray的。

如何訪問此格式的響應和dist結果? 理想情況下,我想轉換爲Mat int。

+0

你可以把mat數據放入cpp數組然後通過jni數組發送 – hariprasad

+0

我該怎麼做?我找不到任何將OutputArray放入cpp數組的文檔 – Ber12345

+0

https://stackoverflow.com/questions/1610045/how-to-return-an-array-from-jni-to-java。這可能會有所幫助 – hariprasad

回答

0

如果你想將mat數據複製到cpp數組中,你可以這樣做。 我假設您要返回的地毯數據是浮動類型。

int size=response.rows*response.cols*resonse.channels(); 
float* outArr=new float[size]; 
std::memcpy(outArr,response.data,size*sizeof(float)); 

您需要將它複製到JNIArray後刪除outArr。