2012-01-05 7 views
2

にVideoCaptureとAndroidのカメラのキャプチャ。 に自分のアプリケーションを構築し、私は OpenCV2.3.1のリリースでリリースされた命令に従ったので、私は日食から直接それを行うには日食に私のアプリと ビルダを構築するためのAndroid.mkファイルを持っています。 すべてが他のOpenCVのモジュールをコンパイルとリンク、正常に動作しますが、私はVideoCaptureを使用するとき、私はこのようなリンクエラーが出る:私はOpenCVのネイティブアプリケーションでVideoCaptureを使用しようとしているOpenCV2.3.1

SharedLibrary: C liblivecamera.so:/開発/アンドロイド-OpenCVの-WSP/VideoCamLibAndroid_v0を。 1/OBJ /ローカル/ armeabi-v7a/libopencv_highgui.a(cap_android.o):関数 CvCapture_Android::convertYUV2BGR(int, int, unsigned char const*, cv::Mat&, bool, bool)': cap_android.cpp: (.text._ZN17CvCapture_Android14convertYUV2BGREiiPKhRN2cv3MatEbb *+0x1c6): undefined reference to CVで:: cvtColor(CV :: _ InputArray CONST &、CV :: _ OutputArrayのCONST &、INT、INT)」cap_android。 cpp :: (.text._ZN17CvCapture_Android14convertYUV2BGREiiPKhRN2cv3MatEbb + 0x1f8):未定義の `cv :: cvtColor(cv :: _ InputArray const)への参照、CV :: _ OutputArrayのconstの&、int型、int型)」collect2は:ldは1つの出口を返さ ステータスメイク:*[/ cygdriveの/ C /開発/アンドロイド-OpenCVの-WSP/ VideoCamLibAndroid_v0.1/OBJ /ローカル/ armeabi-v7a/liblivecamera.so]エラー 1 *

私はopencv2.3.0を使用している場合、私は(CMakeのでコンパイル)それを動作させることができますが、私は本当にOCV2.3.1とその新しい機能を使用する必要があります。

は、誰もが成功しOpenCV2.3.1でVideoCaptureモジュールを使用していますか?

答えて

2

私は正確に同じ問題を抱えていたし、数時間のために壁に頭をバッシングした後、私は最終的に解決策を見つけました!

どうやら、OpenCVの2.3.1で提供さOpenCV.mkにエラーがあります。

次の行:

OPENCV_MODULES := contrib calib3d objdetect features2d video imgproc highgui ml legacy flann core

を置き換えてください:

OPENCV_MODULES := contrib legacy objdetect calib3d features2d video highgui ml imgproc flann core

それは非常に似ていますが、あなたはモジュールの順序を見れば若干の違いがあります。

あなたは次のように述べてOpenCVConfig.cmakeファイルを見てとることで、この変更のロジックを理解することができます:それは元OpenCV.mkに含まれていなかった理由、それはとても重要な場合 #libraries order is very important because linker from Android NDK is one-pass linker

?????

関連する問題