Ubuntu の Eclipse Juno で OpenCV 2.4.4 を使用しています。私の問題は、エラーを示すアンドロイドサンプルプログラム用のこのOpenCVに似ています
しかし、今私を奇妙にしています。私は週末のほとんどをndkとopencvライブラリをうまく動作させるために費やしましたが、それでも動作しません。次のインクルードを含むテストC++ cppファイルがあります-
#include <jni.h>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <cstdlib>
using namespace cv; //this is a problem
...
...
そして、ビルドしようとすると、「名前空間 cv が見つかりません」と表示されます。うーん、間違ったパスを書いたか、正しいライブラリを使用していないのではないでしょうか? 違う。ターミナルでは、ndk-buildがエラーなしで .so ファイルをビルドします。プロジェクト フォルダでは、それらを 1 日のように平易に見ることができます。しかし、eclipse でビルドしようとすると、つまり仮想デバイスまたは実際のデバイスでテスト用の apk をビルドしようとすると、名前空間 cv エラーが発生してビルドが失敗し、cpp ファイルで cv に赤の下線が引かれ、Eclipse でファイル赤くマークされており、このファイルが「修正」されるまでビルドを試みることさえできません。
明らかに私は何か間違ったことをしています。しかし、Eclipse プロジェクトを閉じてから再度開くと、cpp ファイルは赤くマークされなくなり、apk ビルドを作成できます。cpp ファイルを開こうとすると、赤が返され、プロジェクトを閉じる/開くリグマロールを実行するまでビルドを実行できません。
正直なところ、問題の原因が何であるかはわかりません。どんな助けでも大歓迎です。
私の android.mk ファイル:
include $(CLEAR_VARS)
OPENCV_CAMERA_MODULES:=off
OPENCV_INSTALL_MODULES:=on
OPENCV_LIB_TYPE:=STATIC
include /the/correct/path/tp/opencv/sdk/native/jni/OpenCV.mk
LOCAL_MODULE := mylib
LOCAL_SRC_FILES := mylib.cpp
include $(BUILD_SHARED_LIBRARY)
アプリケーション.mk
APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions
APP_ABI := all #i have tried various targets
APP_PLATFORM := android-8
APP_MODULES := mylib
こんなに難しいとは思いませんでした。Eclipse 3.5(と思う)とOpenCV 2.4.2を使用してWindowsで構築した別のrprojectで、Androidでopencvを正常に使用したことを追加する必要があります
EDIT また、opencv の簡単な「汚いテスト」操作を実行したことも言いたいと思います。簡単な Sobel 関数を作成し、それを Java ファイルのネイティブ関数として呼び出して、ビットマップを正常に "sobelled" しました。もちろん、これを行うにはプロジェクトを閉じたり開いたりする必要がありました。