OpenCV for Android 基本框架
2015/09/18 15:26
瀏覽2,131
迴響0
推薦0
引用0
在Android 使用OpenCV function,可以import openCBLib300.lib for Java。藉由Java interface使用opencv function來完成想要做的事情如load image, camera preview及影像處理。
在能正確使用之前,有一些基本的框架需要完成
1. 加入BaseLoaderCallback

Android studio會出現選單,選第一個,系統會自動import 所需的module
import org.opencv.android.BaseLoaderCallback;
宣告 private BaseloaderCallback mLoaderCallback


產生以下的code segment
public class OpenCVLibActivity extends Activity {
private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback() {
@Override
public void onManagerConnected(int status) {
super.onManagerConnected(status);
}
}
要在}之後加上;,不然會有以下error


BaseLoaderCallback()要加入 this,不然會有以下error

修改public void onManagerConnected(int status)內容如下

private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback() {
@Override
public void onManagerConnected(int status) {
switch (status) {
case LoaderCallbackInterface.SUCCESS:
break;
default:
super.onManagerConnected(status);
break;
}
}
};
還有onResume()
public void onResume() {
super.onResume();
if (!OpenCVLoader.initDebug()) {
//Internal OpenCV library not found. Using OpenCV Manager for initialization
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_0_0, this, mLoaderCallback);
} else {
//OpenCV library found inside package. Using it!
mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);
}
}
完整的片段
BaseLoaderCallback(){…};要跟onResume()一起搭配。
private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
@Override
public void onManagerConnected(int status) {
switch (status) {
case LoaderCallbackInterface.SUCCESS:
break;
default:
super.onManagerConnected(status);
break;
}
}
};
@Override
public void onResume() {
super.onResume();
if (!OpenCVLoader.initDebug()) {
//Internal OpenCV library not found. Using OpenCV Manager for initialization
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_0_0, this, mLoaderCallback);
} else {
//OpenCV library found inside package. Using it!
mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);
}
}
補充:
使用的實驗機台: ASUS ZE500KL 8916 64bit CPU and 64bit OS.
配合使用的機台,目前的範例都是需要安裝OpenCV_3.0.0_Manager_3.00_arm64-v8a.apk.
其中arm64-v8a 代表64-bit arm CPU API
你可能會有興趣的文章:


