[[labs.beatcraft.com]]~
[[bc9/Software/OpenEmbedded]]~


*OpenCV for bc9 [#feeb74db]
**使用する version に関して [#e790f368]

OpenCV2.0beta(OpenCV 1.2)は cmake が primary build system になりました。~
(autotools 用の configure.in が用意されていません。)~
cmake は version 2.6 以降でないと cross compile に対応していませんが、~
bc9-oe-sdk の cmake は version 2.4 で cross compile に対応していませんので~
cross compile を行いたい場合は自分で version 2.6 を source からビルドしてインストールしなければなりません。~
また、OpenCV 1.2 はまだ Windows 版しか動作確認ができていません。~
~
以上の理由により、OpenCV1.0 release(OpenCV 1.1pre1)を使用します。~

**環境変数設定 [#dac385d9]
bc9 版を build するためには、bc9 用 kernel を build した時と同様 cross compile のために以下のような環境変数を設定します。
 export PATH=/home/beat/gumstix/gumstix-oe/tmp/cross/bin:$PATH
 export ARCH=arm
 export CROSS_COMPILE=arm-angstrom-linux-gnueabi-
bc9-oe-sdk/bc9-android-sdk の /home/beat/kernel_work/envsetup.sh を source すれば上記の設定が行えます。

**configure [#n38c7921]
以下のような config option で configure を実行します。~
  ./configure --host=arm-angstrom-linux-gnueabi --build=i686-linux \
 --prefix=/home/beat/temp/usr/local \ 
 CC=/home/beat/gumstix/gumstix-oe/tmp/cross/bin/arm-angstrom-linux-gnueabi-gcc \
 CXX=/home/beat/gumstix/gumstix-oe/tmp/cross/bin/arm-angstrom-linux-gnueabi-g++ \
 CPPFLAGS=-I/home/beat/gumstix/gumstix-oe/tmp/staging/arm-angstrom-linux-gnueabi/include \
 LDFLAGS=-L/home/beat/gumstix/gumstix-oe/tmp/staging/arm-angstrom-linux-gnueabi/lib \

**make & make install [#c3c46eb8]
prefix を /home/beat/temp/usr/local としてありますので、アーカイブ作成のために~
make install で仮インストールをすると /home/beat/temp/usr/local 以下に /bin や /lib が作られインストールされます。~
必須のものはこれだけで build されますが、bc9 上で動作を確認するため samples も build します。~
sample は仮インストール先で build しますので、まず source のある場所へ移動します。
 $ cd /home/beat/temp/usr/local/share/opencv/samples/c
すべての samples を一括 build するための build_all.sh がありますので、実行権を与えます。
 $ chmod +x build_all.sh
この script の中の gcc をすべて /home/beat/gumstix/gumstix-oe/tmp/cross/bin/arm-angstrom-linux-gnueabi-gcc に書き換えます。~
次に以下の環境変数を設定し、pkg-config で include PATH と library PATH が見つけられるようにします。
 $ export PKG_CONFIG_PATH=/home/beat/temp/usr/local/lib/pkgconfig/
ここまでの設定を終えたら build_all.sh を実行します。
 $ ./build_all.sh
これで samples が build されます。~
(ただし opencv 自体が gtk2.0=no で build されていますので、GUI を必要とする sample は bc9 上では動作しません。)
~
これを bc9 では /usr/local に install しますので、以下のようにインストール用アーカイブを作成します。
 $ cd /home/beat/temp/
 $ tar cvfz opencv_for_bc9.tgz usr
できあがったインストール用アーカイブ使って bc9 実機にインストールする場合は以下の手順を実行します。~
アーカイブを bc9 にコピー~
 $ scp opencv_for_bc9.tgz root@{bc9_IPADDR}:~/
bc9 に login 後アーカイブを展開します。~
 root@bc9:~$ tar -C / -xzvf opencv_for_bc9.tgz
展開終了後、ldconfig を実行します。~
 root@bc9:~$ ldconfig
次に libstdc++ をインストールします。~
bc9-oe-sdk の以下のディレクトリに
#ref(libstdc++6_4.1.2-r10_iwmmxt.ipk)
が build されていますので、それを bc9 にコピーします。
 $ cd ~/gumstix/gumstix-oe/tmp/deploy/glibc/ipk/iwmmxt/
 $ scp libstdc++6_4.1.2-r10_iwmmxt.ipk root@{bc9_IPADDR}~/
bc9 に login し、インストールします。
 root@bc9:~$ ipkg install libstdc++6_4.1.2-r10_iwmmxt.ipk
正常にインストールが終了したら samples のうち gui を必要としないものが実行できるようになります。~
例として letter_recog を実行すると以下のようになります。
 root@bc9:~$ cd /usr/local/share/opencv/samples/c/
 root@bc9:/usr/local/share/opencv/samples/c$ ./letter_recog
 The database ./letter-recognition.data is loaded.
 Training the classifier ...
 Recognition rate: train = 4.0%, test = 3.9%
 Number of trees: 100
 var#	importance (in %):
 0 	0.0 
 1 	0.0 
 2 	0.0 
 3 	0.0 
 4 	0.0 
 5 	0.0 
 6 	127.3
 7 	5.7 
 8 	0.0 
 9 	0.0 
 10	19.3
 11	-5.7
 12	-23.9
 13	76.1
 14	-92.0
 15	-6.8
 Proximities between some samples corresponding to the letter 'T':
 proximity(0,103) = 70.0%
 proximity(0,106) = 56.0%
 proximity(106,103) = 72.0%

**URL [#t350b6a0]
ビルド済みのインストール用アーカイブは以下のurlからダウンロードできます。~
ビルド済みのインストール用アーカイブは以下の url からダウンロードできます。~
http://sourceforge.jp/frs/redir.php?m=iij&f=%2Fbc9-dev%2F43625%2Fopencv_for_bc9_20090918.tgz

BC::labsへの質問は、bc9-dev @ googlegroups.com までお願い致します。
トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   最終更新のRSS