在Android環境上應用OpenCV有兩種方式
一種是直接使用java撰寫,利用OpenCV函式
另一種是利用NDK,以C語言撰寫
第二種是比較麻煩的,必須做編譯產生.so檔
這邊練習第二種方法
根據上面步驟從環境建置開始做起
環境建置大致都沒什麼問題,值得一提的是cygwin可以不用全部套件都安裝
除非有很多時間可以慢慢等它安裝
要不然其實可以在去網路搜尋一下,安裝幾個必要套件即可
然後版本可以選一下,選最新就對了
要不然安裝完
make -v
gcc -v
版本一查下來,結果是舊版又得重新安裝了
這邊不知道是否有提過gcc版本要4.3.4的話
我是去網路下載那個版本去做更新的
因為在安裝套件時選版本也沒用
接著在程式撰寫部分
恩,我覺得很多東西的路徑都沒講清楚
這邊簡單講一下
以下是Android.mk
有許多檔案以及其位置,這個齁檔案要放對
要不然編譯會一直錯-.-
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) include ../includeOpenCV.mk ifeq ( "$(wildcard $(OPENCV_MK_PATH))" , "" ) #try to load OpenCV.mk from default install location include $(TOOLCHAIN_PREBUILT_ROOT)/ user /share/OpenCV/OpenCV.mk else include $(OPENCV_MK_PATH) endif LOCAL_MODULE := ImgFun LOCAL_SRC_FILES := ImgFun.cpp include $(BUILD_SHARED_LIBRARY) |
第一:includeOpenCV.mk
這個檔案要放在workspace裡面,package外面
第二:OpenCV.mk
哈哈,我完全看不懂if判斷是在寫啥
我只知道你放錯就會去$(TOOLCHAIN_PREBUILT_ROOT)這裡找OpenCV.mk
但絕對找不到,所以必須將OpenCV2.3.1放在workspace外面
這樣才找得到檔案
第三: openCV2.3.1資料夾
其實這個跟第二個的 openCV2.3.1資料是一模一樣的
無奈我懶得去改路徑,mm我也不會改,所以只好笨一點複製兩個同樣的資料夾
將OpenCV2.3.1放在workspace裡面
目的是為了要 add openCV2.3.1資料夾用
這樣寫Android才能用OpenCV函式唷,啾咪