我想使用OpenCV Android移植,您可以找到HERE,为增强现实应用程序进行一些图像转换。我发现配置和构建库没有问题,我没有收到任何错误,我成功地把它放在我的Android应用程序中的JNI进程中:库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");
}
if (!imgIn) return env->NewStringUTF("Error");
cvReleaseImage( &imgIn );
return env->NewStringUTF("Ok");
在这两种情况下,我都会收到“错误”。 sdcard上的文件没有问题因为我试图这样做:
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");
}
我收到“OK”。 我意识到highgui库中存在一些问题,但是我不明白为了避免这个问题我应该做些什么。 一些建议!!!
谢谢大家
答案 0 :(得分:2)
伙计们 - 您可能想尝试这个链接,它将C ++的“现代”界面移植到opencv。不推荐使用IplImage,但如果您需要支持遗留代码,则新版本会保留包装器。
http://code.google.com/p/android-opencv/
有一个示例相机校准应用程序,您单击快照几次,它将解决K矩阵。
注意:您需要使用structax ndk作为STL类http://www.crystax.net/android/ndk-r4.php