今日の一言
2011/06/07(Tue) やべえ。会社寝過ごしそう。 [長年日記] 1:00現在 21℃
_ [Windows]ショートネームの調べ方(古いWindowsでディレクトリが指定できない等)
コマンドプロンプトで
dir /x
と打てばOK。
例えば、「Documents and Settings」は「DOCUME~1」、「Program Files」は「PROGRA~1」で指定できることが分かる。
パスの指定で空白が入って困る場合にも使えるかも。
以上!
_ [Android][GALAXY S][Windows]純正のAndroid NDKを使ってAndroid上でOpenCV2.2を動かす(OS:Windows7 64bit)
参考:
http://team-hiroq.com/blog/android/android_opencv_setup_environment2.html http://opencv.willowgarage.com/wiki/AndroidTrunk#Windows.28native.29 http://team-hiroq.com/blog/android/android_opencv_sample2.html
調べてみると、C++に対応するように拡張したNDKを使う方法が多く見られたが、NDK version5でC++に対応したので、使わなくてもいけるかとも思って調べたところ、やはり公式NDKでもいけるようになったっぽい。
ただ、やっぱりcygwinがうっとうしい。正直、Ubuntuでやればよかったとつくづく思っている!
まあ、それはそれとして。
基本的に、OpenCVの公式wiki(http://opencv.willowgarage.com/wiki/Android?highlight=%28%28Android2.2%29%29)に書いている、「AndroidTrunk」の方法そのもの。
あと、こちら(http://team-hiroq.com/blog/)をかなり参考にさせてもらっています。
始める前に
前提として、NDKとcygwinの基本的なインストールは終わっているものとしてまとめる。
cygwinにsvnをインストール
今回、OpenCVのソースのDLにsvnを使うため、cygwinで新たにsvnをインストールする必要がある。
※多分develにあるので、選択してインストールしておく。
cmakeのインストール
※cygwinのはディレクトリの指定方法が違うらしく、流用できないので注意!
まず、こちら(http://www.cmake.org/)からcmakeのWindows用バイナリを入手。
インストーラ形式でインストールしてもいいが、zipを入手して適当なディレクトリに解凍でもOK。
makeのインストール
※cygwinのはディレクトリの指定方法が違うらしく、流用できないので注意!
続いてこちら(http://code.google.com/p/mingw-and-ndk/downloads/list)からmakeのWindows用バイナリm(ake-3.7z)を入手。7z形式なので、WinRARとかその辺りので解凍する。配置は適当でOK。
swigのインストール
※これが無くてもOpenCV自体はコンパイルできる。が、それだとサンプルがコンパイルできないので、ついでにインストールしておく。
こちら(http://www.swig.org/download.html)からswigのWindows用バイナリを入手。(現状の最新はswigwin-2.0.4.zip)
適当なディレクトリに解凍し、配置すればOK。
Antのインストール
※これが無くてもOpenCV自体はコンパイルできる。が、それだとサンプルがコンパイルできないので、ついでにインストールしておく。
こちら(http://ant.apache.org/bindownload.cgi)からswigのWindows用バイナリを入手。(現状の最新apache-ant-1.8.2-bin.zip)
これも適当なディレクトリに解凍し、配置すればOK。
OpenCVのソースを入手し、環境に合わせて修正
cygwinを起動し、
$ svn checkout https://code.ros.org/svn/opencv/trunk/opencv
と入力して、ソースを取得。
取得したソースのトップディレクトリ(opencv)の下に、「android/scripts」フォルダがあるので、それをWindowsのエクスプローラーで開く。
すると、そのディレクトリ内に『wincfg.cmd.tmpl』というファイルがあるので、これをその場でコピーし、コピーしたファイルの名前を『wincfg.cmd』に変更する。
コピーしたファイル(wincfg.cmd)を適当なテキストエディタで開き、NDK、cmake、makeのパスの設定を自分の環境に合わせて書き換える。
自分の場合、以下のようになった。
:: variables required for OpenCV build :: :: Note: all pathes should be specified without tailing slashes! SET ANDROID_NDK=C:\android-ndk-r5b SET CMAKE_EXE=C:\android-cv-tools\cmake-2.8.4-win32-x86\bin\cmake.exe SET MAKE_EXE=C:\android-cv-tools\make.exe
また、OpenCV自体のコンパイルには必要ないが、サンプルをコンパイルできるように、Swig、android sdk、ant、javaのパスも設定しておく。
自分の場合、以下のようになった。
:: variables required for android-opencv build :: SET SWIG_DIR=C:\android-cv-tools\swigwin-2.0.4 SET ANDROID_SDK=C:\Program Files (x86)\Android\android-sdk\ SET ANT_DIR=C:\android-cv-tools\apache-ant-1.8.2 SET JAVA_HOME=C:\Program Files (x86)\Java\jdk1.6.0_24
OpenCVのコンパイル
コマンドプロンプトを開き、先ほどDLしたOpenCVのディレクトリ直下にあるandoridというディレクトリに移動する。
※自分の場合は、以下のようになった。
cd \opencv\android
最後に、
scripts\cmake_android.cmd
と入力し、OpenCVをコンパイル。
なお、コンパイルには非常に時間がかかるので注意すべし!(多分30分ぐらい?)
[100%]と表示されれば、コンパイル完了。
ライブラリの作成自体はこれで終了のはず。
サンプルプロジェクトのコンパイル
コマンドプロンプトを開き、opencvの下の「android\android-opencv」ディレクトリへ移動。
※自分の場合は、以下のようになった。
cd \opencv\\android\android-opencv
ここで、
cmake_android.cmd
と打つと、コンパイルが開始される。
BUILD SUCCESSFULと表示されればコンパイルは完了!
ただし!64bit版Windowsの場合、Javaが見つからずにエラーが出ることがある。
※「Program files (x86)」にインストールされている場合など。
その場合は、「Program files」にインストールしなおすか、こちら(http://stackoverflow.com/questions/3052743/android-create-call-fails-in-windows-7-missing-jdk)を参考に自力で修正してください。
※最悪、Program files (x86)のをそのままコピペすれば動く・・・はず。
ここで出来たサンプルプログラムを元に、自作のプロジェクトを作っていくことになる・・・のかな?
wiki見ながら順番通りにやってるので、正直今後これをどう使っていくのかが分かってない点が多々ある・・・。
まあ、それはそれとて!次!
サンプルプログラムのコンパイル
コマンドプロンプトを起動し、opencvの下の「android/apps/OpenCV_SAMPLE」ディレクトリに移動して、以下のコマンドを打つ。
cd /cygdrive/c/opencv/android/apps/OpenCV_SAMPLE cmake_android.cmd
これでコンパイルができた。
後は、
C:\android-cv-tools\apache-ant-1.8.2\bin\ant debug
としてantでapkパッケージを作り、実際に端末にインストールすればおそらく実行できるはず!
この辺についてはまだ自分もよく分かっていなくて手探りの状態なので、そのうちまとめるかも!
最後のほうとかかなりぐだぐだだが、とりあえず、以上!
※自分の環境では、GALAXY Sできちんと動きました。