輕鬆告別OpenCV Manager

在使用Android開發過程中,需要對圖形圖像進行處理的時候,一般都會使用OpenCV這個強大的視覺庫,然而對很多新接觸OpenCV的同學們,在安裝官方給的sample時候,必須要安裝OpenCV Manager,否則會出現找不到庫的錯誤,剛開始的時候我也很糾結,後來在網上找了些資料,官網上也查了查文檔,發現簡單的幾步就可以實現不用OpenCV Manager。
下面把我的部分代碼貼出來,大家在使用官方的sample時候,可以參考一下
1、修改jni的Android.mk文件,把OpenCV的那部分,將off設置爲on,並設置OpenCV_LIB_TYPE爲SHARED,表示動態引用OpenCV的so庫
OpenCV_CAMERA_MODULES:=on
OpenCV_INSTALL_MODULES:=on
OpenCV_LIB_TYPE:=SHARED
2、在Java代碼中使用靜態初始化塊代碼,使用libopencv_java.so和自己需要的so文件
static { System.loadLibrary("opencv_java"); System.loadLibrary("abc"); //自己需要的so文件}
3、在使用OpenCV的Java類中,刪除penCVLoader.initAsync(),不使用OpenCV Manager。
public void onResume() {
super.onResume();
//OpenCVLoader.initAsync(OpenCVLoader.OpenCV_VERSION_2_4_3, this, mLoaderCallback);
}
4、修改Java類中的OnCreate()方法,如同在官方sample中,從上面的回調方法 private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this)代碼塊中的業務邏輯,複製放到OnCreate的setContentView()後,也就是說,自己寫的業務邏輯,要放在OnCreate的setContentView()後,然後拷貝mOpenCVCameraView.enableView();放到mOpenCVCa meraView= (CameraBridgeViewBase) findViewById(R.id...)後面,即可在publicMat onCameraFrame() 方法中使用照相機進行開發,順便提一句,如果使用JNI開發,調用C++程序,也是在該方法中,把Mat對象的兩個long型參數傳遞到C++端。
5、卸載OpenCV Manager,然後重新調試運行即可。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章