相信有接觸過計算機視覺等程式的人,應該知道OpenCV是什麼
那是啥東西啊?
總而言之,OpenCV本來是個用C++編寫的函式庫
但在先人努力下,它也能在以Java為基礎的Android上執行
什麼?!你說iOS?沒測試過我也不知道……
根據教學文件指出,要使用OpenCV大概要安裝以下軟體……
JDK
Android SDK and NDK
Eclipse IDE
ADT and CDT plugins for Eclipse
相信安裝JDK、Eclipse和Android SDK並不困難
甚至Android SDK本身就提供了Eclipse
只要下載了Android SDK,就能從目錄裡開啟Eclipse
ADT則是一個針對Android開發的Eclipse插件
按照說明從Eclipse安裝ADT,即可將Eclipse改為Android開發環境
安裝CDT和安裝ADT一樣,在Eclipse輸入一個網址就能安裝完成
NDK就比較麻煩,你必須將NDK下載下來後解壓縮
再到環境變數設定NDKROOT的位置
理論上這樣子,OpenCV for Android的開發前置環境就設定完成了
接著你可以「輸入已存在project」的方式,將OpenCV的sample導入
映入眼簾的是一片編譯錯誤的紅色叉叉
怎麼回事,我明明按照說明做了,怎麼還一堆編譯錯誤……
根據說明所示,NDK的位置好像會發生問題……
但是當你打開properties會發現……啊,奇怪,為何我會沒有C/C++這一項
理論上先前若安裝過CDT,Eclipse就能使用C/C++的功能
原來是必須選擇File>New>Other>C/C++,將既有project轉換為C/C++ project
好不容易圖上的C/C++ Build出現了,將NDK的位置設置好……
啊,怎麼還是一堆紅叉叉,搞什麼鬼呀!
什麼什麼,原來還有另一份文件寫著,要把另一個地方的NDK路徑設置好
# for NDK r8b and later:
${NDKROOT}/platforms/android-9/arch-arm/usr/include
${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.6/include
${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi-v7a/include
${ProjDirPath}/../../sdk/native/jni/include
好不容易把可以設置的地方都設置好……
還是滿江紅!!!!!
特別是一開始它不認得java.util函式庫
把JDK裝到Build path後,它換成不認得Android的函式庫,怎麼這麼麻煩呀
喔喔喔喔喔喔喔喔喔喔-----
哇,有人要暴走了!
雖然一個正職(?)工程師應該一個個軟體慢慢裝
但我真的快受不了了,只能使用白癡方法……
TADP是NVIDIA所提供的整合型安裝軟體
自動將以下軟體安裝好,真是佛心來著
Android Development:
.Android SDK r21.0.1
.Android APIs
.Android NDK r8d
.Google USB Driver
.Android Support Library
.JDK 6u24
.Cygwin 1.7
.Eclipse 4.2.1, CDT 8.1.1, ADT 21.0.1
.Apache Ant 1.8.2
Tegra Libraries and Tools:
.Nsight Tegra 1.1, Visual Studio Edition [Windows Only]
.NVIDIA Debug Manager for Eclipse 12.0.1
.PerfHUD ES 1.9.8
.Tegra Profiler 1.2
.OpenCV for Tegra 2.4.3.2
.PhysX 3.2 for Android
Tegra Samples, Docs and OS Images
.Tegra SDK Samples
.Tegra SDK Documentation
.Tegra Android OS Images for Cardhu and Ventana development kits
All Tegra SDK Samples will also be imported into an Eclipse workspace.
The pack provides sample applications, support libraries and updated documentation for the following Android game development topics:
.Pure native gaming on Android with NativeActivity
.Getting Android application lifecycle just right
.Tips for (and benefits of) mixing a little Java into your native Android game for better integration
.Supporting game controllers, sensors, multi-touch and device rotation
不過當你點入下載頁面會發現……奇怪,怎麼連不上?!
原來是要登入會員並簽署Registered Developer Programs才能下載
喂喂,這又不是你們開發的程式,竟然還這麼小氣
基本上安裝並不困難,雖然時間長,但不需做什麼就能安裝完成
安裝完當然是馬上點開Eclipse試試看,但最好是先閱讀一下說明文件
一般來說Eclipse的workspace都是設置在「我的文件」下
但TADP要求將workspace設置在<path to TADP directory>下
按照說明文件的白癡方法一步步走,終於將OpenCV編譯成功!
萬歲!!!!!
萬你的頭,根本只是照著步驟走而已!
所以我才討厭Java,有太多的插件整合不知為何那麼喜歡跟我作對!
這就是你使用不熟練之故!
以實機執行後,實機會要求你下載OpenCV Manager
基本上到這一步就沒什麼問題了