usar studio para example descargar android opencv android-ndk native

para - opencv android studio documentation



Usando opencv FileStorage native en android (1)

Estoy tratando de escribir una aplicación para Android que calcula los puntos clave y las descripciones usando opencv y los almacena. Sin embargo, estoy teniendo problemas con cv: FileStorage. En realidad estoy pasando la ruta del archivo arrojar métodos nativos. La misma ruta (finalización de archivo diferente) también se usa para almacenar otro archivo en javaside.

JNIEXPORT void JNICALL Java_com_..._CalcFeatures(JNIEnv* env, jobject, jlong addrGray, jstring location){ ... const char *nativeString = env->GetStringUTFChars(location, NULL); string filepath=string(nativeString); FileStorage fs(filepath, FileStorage::WRITE); fs<<"frameCount"<<5; fs.release(); ... }

Salida LogCat:

Fatal signal 11 (SIGSEGV) at 0x000009f4 (code=19), thread 23789

También intenté hardcode la ruta (como "/sdcard/test.xml" o "/storage/emulated/0/text.xml"). Si utilizo "test.xml" como ruta de archivo, no obtengo ningún error, pero no puedo encontrar el archivo en mi teléfono (HTC One).

¿Algún consejo?

Gracias por tu tiempo.

ACTUALIZAR:

esto funciona bien, entonces hay un problema con FileStorage. ¿Hay alguna otra forma en opencv para analizarlo en un formato xml / json? quizás con una cuerda como resultado?

FILE* file = fopen(nativeString,"w+"); fputs("hello, world/n", file); fclose(file);


He hecho una pregunta similar aquí: imread devuelve la matriz vacía, mientras que ifstream puede abrir y leer el mismo archivo y descubrí que incluso si puedo manipular el archivo desde la parte nativa, no puedo usar FileStorage de opencv.

Y es por eso que no puedo cargar matriz, clasificador en cascada, etc.

También intenté cargar datos de un archivo a la memoria y crear FileStorage desde la memoria, que se creó para escribir, pero no funciona (mientras funciona perfectamente en Windows). No puedo acceder a ningún nodo.