2017-12-27 826 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。