為了方便起見,我們想在一個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
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);
}
//------------------------------------------------------------------------------
...}