shamangary's Blog

Android上使用Opencv manager的注意事項

| Comments

為了方便起見,我們想在一個package中放兩個.java檔就好,

一個是負責Android介面的(稱為MainActivity.java),另一個是負責feature matching的(稱為ComputeFeature.java),

概念上是在MainActivity.java的部份我們"盡量"不使用opencv的東西,只傳遞拍照後的結果到ComputeFeature.java,

之後再由ComputeFeature.java擷取出ORB特徵,然後再去執行和template logo dataset的ORB feature matching,

但是因為我們必須使用到Opencv manager,所以我們必須在MainActivity.java就讀取所謂的opencv manager才可以,

讀取好了之後,ComputeFeature.java就不用再讀取一次,但是兩個.java檔都要記得import一些有的沒有的東西喔(opencv和android都要)。

方法其實很單純(但也讓我搞了很久...),只需要在MainActivity下輸入下面的code就可以了

為了啟用opencv manager所需加入的code

MainActivity.java
public class MainActivity extends Activity {

  
  
  //------------------------------------------------------------------------------
  //注意要先load opencv,別忘了onResume的部份
    private static final String TAG = "OCVSample::Activity";
    private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
        @Override
        public void onManagerConnected(int status) {
            switch (status) {
            case LoaderCallbackInterface.SUCCESS: {
                Log.i(TAG, "OpenCV loaded successfully");
            }
                break;
            default: {
                super.onManagerConnected(status);
            }
                break;
            }
        }
    };
  
  @Override
    public void onResume()
    {
        super.onResume();
        //注意要先load opencv
        OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_7, this, mLoaderCallback);
    }
  //------------------------------------------------------------------------------
    
    
    
    
    ...}

Comments

comments powered by Disqus