从openCV函数C ++ NDK访问返回值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从openCV函数C ++ NDK访问返回值相关的知识,希望对你有一定的参考价值。

我在OpenCV中使用Knn findNearest函数,它接受以下参数:

Mat response;
Mat dist;

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

从response和dist返回的输出是OutputArray类型。

如何以此格式访问response和dist的结果?理想情况下,我想转换为Mat int。

答案

如果要将mat数据复制到cpp数组中,可以这样做。我假设您要返回的Mat数据是float类型。

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

你需要删除outArr后将其复制到JNIArray。

以上是关于从openCV函数C ++ NDK访问返回值的主要内容,如果未能解决你的问题,请参考以下文章

使用OpenCV和Android NDK转换数据格式

Android jni/ndk编程二:jni数据类型转换(primitive,String,array)

Android NDK将参数传递给本机方法

AndroidStudio NDK之使用OpenCV

Stat() 函数返回值 -1,因此无法访问文件属性。我该如何纠正?

JNI、NDK 和 OpenCV