close

在Android環境上應用OpenCV有兩種方式

一種是直接使用java撰寫,利用OpenCV函式

另一種是利用NDK,以C語言撰寫

第二種是比較麻煩的,必須做編譯產生.so檔

這邊練習第二種方法

參考如何在Android中使用OpenCV 

根據上面步驟從環境建置開始做起

環境建置大致都沒什麼問題,值得一提的是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函式唷,啾咪

arrow
arrow
    全站熱搜

    glitterHsin 發表在 痞客邦 留言(3) 人氣()