close
下載完OpenCV for Android之後,需要run些 sample code來確定環境是否設定正確
5/11, 2014
每次加新專案進eclipse都一堆錯,記下需要做哪裡設定
- properties - android - project build target 打勾
- 若有jni,C/C++ build - builder settings - build command - ${NDKROOT}/ndk-build.cmd
- C/C+++ General - paths and symbols - includes - GNU C++ - 增加
- 若沒有libs, 右鍵android tools - add support library,順便複製某個專案裡面的armeabi-v7a or armeabi or x86,複製哪一個端看Android.mk
- C/C++ build - environment - add : NDKROOT - C:\android-ndk-r9d
- Android.mk : * include $(CLEAR_VARS)
- OPENCV_CAMERA_MODULES: =on
- OPENCV_INSTALL_MODULES: =on
- OPENCV_LIB_TYPE:=SHARED
- include C:\adt-bundle-windows-x86-20130917\OpenCV-2.4.9-android-sdk\sdk\native\jni\OpenCV.mk
以 Tutorial 2 – Mixed Processing 為例
去除OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mLoaderCallback);
- 註解掉這個方法 private BaseLoaderCallback mLoaderCallback
- 新增
static {Log.i(TAG,"OpenCV library load!");
if(!OpenCVLoader.initDebug()){
Log.i(TAG,"OpenCV load not successfully");
}else {System.loadLibrary("opencv_java");System.loadLibrary("nonfree");
System.loadLibrary("mixed_sample");←引用哪個library查看mLoaderCallback方法
}
} - 在onCreate()方法中兩行中加入
mOpenCvCameraView =CameraBridgeViewBase)findViewById(R.id.tutorial2_activity_surface_view);
mOpenCvCameraView.enableView();
mOpenCvCameraView.setCvCameraViewListener(this); - 在onResume方法註解
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mLoaderCallback);
使用SiftFeatureDetector
- 複製可以跑SiftFeatureDetector專案的libnonfree.so與libopencv_java.so至jni資料夾
- #include <opencv2/features2d/features2d.hpp> 換成
#include <opencv2/nonfree/features2d.hpp>#include <opencv2/nonfree/nonfree.hpp> - Android.mk 改成
-
include $(CLEAR_VARS)OPENCV_CAMERA_MODULES: =onOPENCV_INSTALL_MODULES: =onOPENCV_LIB_TYPE:=SHAREDinclude C:\adt-bundle-windows-x86-20130917\OpenCV-2.4.9-android-sdk\sdk\native\jni\OpenCV.mkinclude $(CLEAR_VARS)LOCAL_MODULE : = nonfree_prebuiltLOCAL_SRC_FILES := libnonfree.soinclude $(PREBUILT_SHARED_LIBRARY)include $(CLEAR_VARS)LOCAL_MODULE : = opencv_java_prebuiltLOCAL_SRC_FILES := libopencv_java.soinclude $(PREBUILT_SHARED_LIBRARY)include $(CLEAR_VARS)#Modify LOCAL_C_INCLUDES with your path to OpenCV for Android.LOCAL_C_INCLUDES:= C:\adt-bundle-windows-x86-20130917\OpenCV-2.4.9-android-sdk\sdk\native\jni\includeLOCAL_MODULE : = mixed_sampleLOCAL_CFLAGS : = -Werror -O3 -ffast-mathLOCAL_SHARED_LIBRARIES : = nonfree_prebuilt opencv_java_prebuiltLOCAL_SRC_FILES := jni_part.cppLOCAL_LDLIBS += -llog -ldlinclude $(BUILD_SHARED_LIBRARY)
以上都是歷史紀錄,若有遇上問題,會再補充說明
文章標籤
全站熱搜