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");

}

どちらの場合も、「エラー」が表示されます。これを作成しようとするため、sdcard 上のファイルに問題はありません。


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/

サンプルのカメラ キャリブレーション アプリがあります。スナップを数回クリックすると、K 行列が解かれます。

注:STLクラスにはcrystax ndkが必要です。 http://www.crystax.net/android/ndk-r4.php

于 2010-08-03T22:36:10.040 に答える