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++ - 增加

android for opencv project1

  • 若沒有libs, 右鍵android tools - add support library,順便複製某個專案裡面的armeabi-v7a or armeabi or x86,複製哪一個端看Android.mk
  • C/C++ build - environment - add : NDKROOT - C:\android-ndk-r9d

2  

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

  1. 註解掉這個方法 private BaseLoaderCallback  mLoaderCallback 
  2. 新增
    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方法
             }
        }
  3. 在onCreate()方法中兩行中加入
    mOpenCvCameraView =CameraBridgeViewBase)findViewById(R.id.tutorial2_activity_surface_view);
    mOpenCvCameraView.enableView();
    mOpenCvCameraView.setCvCameraViewListener(this);
  4. 在onResume方法註解
    OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mLoaderCallback);
     
使用SiftFeatureDetector
  1. 複製可以跑SiftFeatureDetector專案的libnonfree.so與libopencv_java.so至jni資料夾
  2. #include <opencv2/features2d/features2d.hpp> 換成 
    #include <opencv2/nonfree/features2d.hpp>
    #include <opencv2/nonfree/nonfree.hpp>
  3. Android.mk 改成
  4. 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
     
    include $(CLEAR_VARS)
    LOCAL_MODULE    : = nonfree_prebuilt
    LOCAL_SRC_FILES := libnonfree.so
    include $(PREBUILT_SHARED_LIBRARY)
     
    include $(CLEAR_VARS)
    LOCAL_MODULE    : = opencv_java_prebuilt
    LOCAL_SRC_FILES := libopencv_java.so
    include $(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\include
    LOCAL_MODULE    : = mixed_sample
    LOCAL_CFLAGS    : = -Werror -O3 -ffast-math
    LOCAL_SHARED_LIBRARIES : = nonfree_prebuilt opencv_java_prebuilt
    LOCAL_SRC_FILES := jni_part.cpp
    LOCAL_LDLIBS +=  -llog -ldl
    include $(BUILD_SHARED_LIBRARY)

以上都是歷史紀錄,若有遇上問題,會再補充說明

 

 

arrow
arrow
    文章標籤
    Eclipse Android OpenCV
    全站熱搜

    glitterHsin 發表在 痞客邦 留言(0) 人氣()