3

我想使用您可以在此处找到的 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 库中存在一些问题,但我不明白我应该采取什么措施来避免这个问题。一些建议!!!

谢谢大家

4

1 回答 1

2

伙计们-您可能想尝试此链接,它将 C++“现代”接口移植到 opencv。IplImage 的东西已被弃用,但如果您需要支持旧代码,新版本会留下包装器。

http://code.google.com/p/android-opencv/

有一个示例相机校准应用程序,您单击 snap 几次,它将求解 K 矩阵。

注意:你需要用于 STL 类的 crystax ndk, http ://www.crystax.net/android/ndk-r4.php

于 2010-08-03T22:36:10.040 回答