2017-12-27 14 views
0

난을 OpenCV의 KNN findNearest 함수를 사용하고,로부터의 리턴 값에 :다음과 같은 파라미터에 걸리는 OpenCV의 함수 C++ NDK

Mat response; 
Mat dist; 

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

출력은 응답 DIST에서 반환하는 타입 OutputArray이다.

응답 및 dist 결과는이 형식으로 어떻게 액세스합니까? 이상적으로 Mat int로 변환하고 싶습니다.

+0

매트 데이터를 cpp 배열에 넣은 다음 jni 배열을 통해 보낼 수 있습니다 – hariprasad

+0

어떻게해야합니까? OutputArray를 cpp 배열에 두는 데 필요한 설명서를 찾을 수 없습니다. – Ber12345

+0

https://stackoverflow.com/questions/1610045/how-to-return-an-array-from-jni-to-java. 이 도움이 될 수 있습니다 – hariprasad

답변

0

매트 데이터를 cpp 배열로 복사하려면 다음과 같이하면됩니다. 반환하려는 매트 데이터가 float 유형이라고 가정합니다.

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

당신은 JNIArray에 복사 한 후에 outArr을 삭제해야합니다.