我想使用您可以在此处找到的 OpenCV Android 移植来为增强现实应用程序进行一些图像转换。我发现配置和构建库没有问题,我没有收到任何错误,我通过 JNI 进程成功地将它放在我的 Android 应用程序中:库 libopencv.so 位于我项目目录下的正确目录“\libs\armeabi\”中. 现在的问题是:
1)首先我想了解这个移植源自哪个版本的原始openCV库。知道它是从 1.5、2.0 还是 2.1 版本派生的对我来说很重要,因为相同的功能非常不同,而其他功能则不存在。
2)在开始实时视频操作之前,我会尝试对单个图像或保存的视频进行一些简单的操作:
JNIEXPORT
jstring
JNICALL
Java_org_examples_testOpenCV_OpenCV_LoadImage(JNIEnv* env, jobject thiz)
{
IplImage* imgIn = cvLoadImage("/sdcard/testimage.jpg", -1);
if (!imgIn) return env->NewStringUTF("Error");
cvReleaseImage( &imgIn );
return env->NewStringUTF("Ok");
}
JNIEXPORT
jstring
JNICALL
Java_balmas_examples_testOpenCV_OpenCV_manageVideo(JNIEnv* env, jobject thiz)
{
CvCapture* capture = cvCaptureFromFile("/sdcard/video_galaxyspica_352x288_15fps.3gp");
if (!capture) return env->NewStringUTF("Error");
return env->NewStringUTF("Ok");
}
在这两种情况下,我都会收到“错误”。SD卡上的文件没有问题,因为我尝试这样做:
FILE* file = fopen("/sdcard/video_galaxyspica_352x288_15fps.3gp","w+");
//FILE* file = fopen("/sdcard/testimage.jpg","w+");
if (!file) return env->NewStringUTF("Error");
else {
fflush(file);
fclose(file);
return env->NewStringUTF("OK");
}
我收到“OK”。我意识到 highgui 库中存在一些问题,但我不明白我应该采取什么措施来避免这个问题。一些建议!!!
谢谢大家