在Android上,有兩種使用OpenCV的方法。方法一:使用OpenCV提供好的庫文件,然後調用OpenCV的java api來進行圖像處理。方法二:使用OpenCV的C++的api,這時需要先使用NDK創建動態庫,然後在Android工程中間接調用動態庫中的函數。
值得說明的是,如果僅是使用第一種方法,CDT和NDK是不需配置的,只需將OpenCV的庫導入到工程中即可。
https://jingyan.baidu.com/article/4f7d5712ca0a031a21192760.html
在Android上,有兩種使用OpenCV的方法。方法一:使用OpenCV提供好的庫文件,然後調用OpenCV的java api來進行圖像處理。方法二:使用OpenCV的C++的api,這時需要先使用NDK創建動態庫,然後在Android工程中間接調用動態庫中的函數。
值得說明的是,如果僅是使用第一種方法,CDT和NDK是不需配置的,只需將OpenCV的庫導入到工程中即可。
首先下載OpenCV4Android。筆者在2015.06.18下載的最新版本是OpenCV-3.0.0-android-sdk.zip。將其解壓到非系統盤裏。
然後創建一個新的文件夾,用於OpenCV的Android程序的開發。
注意,該WorkSpace必須和解壓的OpenCV-android-sdk在同一個盤符下,不然可能導致後期的導入庫函數失敗。
效果如下圖所示:
導入OpenCV庫和實例到Eclipse中。
OpenCV Library的導入與一般的庫的導入一致。具體如下:
在「Package Explorer」->Import,進入到如下界面:
按照引導,選擇……\OpenCV-android-sdk\sdk,就可將OpenCV導入到Eclipse中。效果如下:
這樣,OpenCV就導入到Eclipse中了,接下來就是導入實例,並將該OpenCV庫導入到實例中。實例的導入與一般的工程導入一致,這裏不做介紹。
需要說明的是,這裏的實例沒有使用OpenCV的C++的api,所以不需配置CDT和NDK。導入工程後,會給出如下無法識別opencv庫中的內容的錯誤提示。
這時,就需要爲工程關聯OpenCV庫。
關聯OpenCV庫,步驟見下圖:
這樣OpenCV庫就正確導入了,程序錯誤消失。
運行(run)例程,在AVD或手機上調試,可能會出現如下錯誤:「OpenCV manager package was not found」。
出現這種錯誤的主要原因是,在源程序中使用到OpenCV Manager。給出兩種解決方案:
方案一:
在AVD或真機上安裝OpenCV Manager.apk。
方案二:修改程序源碼,將其轉換成不需要OpenCV Manager。
由於在下載的OpenCV-3.0.0-android-sdk.zip的解壓文件的……\OpenCV-android-sdk\apk中包含需要安裝到真機的版本,所以我們選擇方案一。