以前書いた以下のブログでは、OpenCVによる画像処理の結果は、ファイルに保存していました。
Armadillo-X1でOpenCVを使って見る
しかし画像処理の結果を、連続してウィンドウに連続描画したい場合が多いと思います。 Armadillo-X1にUSBモニタを接続する方法もありますが、今回はLANで接続したPC上でウィンドウ表示する方法を試してみます。
1. 構成
今回もArmadillo-X1にUSBカメラを接続して評価してみます。 今回利用したUSBカメラは家電量販店などで購入した以下の製品になります。
2. パッケージのアップデート
まずはパッケージのアップデートとアップグレードを行います。
root@armadillo:~# apt-get update
root@armadillo:~# apt-get upgrade
3. OpenCVのライブラリをインストール
Armadillo-X1の標準のユーザーランドには、OpenCVのライブラリがインストールされていません。 今回は、サンプルソースコードのビルドもArmadillo-X1上で行うこととしますので、開発用パッケージを以下のようにインストールします。
root@armadillo:~# apt-get install libopencv-dev
なお、Armadillo-X1のユーザーランドであるDebian GNU/Linux 8(jessie)で用意されているOpenCVのパッケージは、2.4.9になります。
4. ATDE6でX Serverの設定を行う
Armadillo-X1上での画像処理結果を、リモート接続したATDE6上で表示するための設定を行います。
4.1 ログインマネージャ gdm3のTCP接続を許可
/etc/gdm3/daemon.conf を編集し "DisallowTCP=false" を追加します
atmark@atde6:~$ sudo vi /etc/gdm3/daemon.conf
[security]
DisallowTCP=false
4.2 Xserverのtcp接続を許可
/etc/X11/xinit/xserverrc を編集し、exc /user/bin/X -nolisten tcp "$0" をコメントアウトします
atmark@atde6:~$ sudo vi /etc/X11/xinit/xserverrc
#!/bin/sh
# exec /usr/bin/X -nolisten tcp "$@"
4.3 設定の有効化
一度リブートします
sudo reboot
4.4 xhost、アクセス制限解除
再起動したら、xhostのアクセス制限を解除します
atmark@atde6:~$ sudo xhost +
5. サンプルソースをビルド
今回のサンプルソースコードは、以下のHowToで公開しているエッジ検出のサンプルコードを使います。 ただし、以下のHowToではブラウザ経由での結果参照ですが、今回はcvNameWindow/cvShowImageなどを利用したウィンドウ表示の方法に変更しています。
Howto : Armadillo-810上でのOpenCVの画像処理結果を確認する
サンプルソースコードは以下からダウンロードしてください。
サンプルソース
ネットワーク/USBメモリ経由などで上記サンプルソースをArmadillo-X1上にコピーしたあと、以下のようにビルドしてください。
root@armadillo:~# ls sample_convert.tar
sample_convert.tar
root@armadillo:~# tar xvf sample_convert.tar
./sample_convert.c
./Makefile
root@armadillo:~# make
gcc -c -o sample_convert.o sample_convert.c
gcc -lopencv_core -lopencv_highgui -lopencv_imgproc -lm -o sample_convert sample_convert.o
6. サンプルソースを実行
Armadillo-X1とATDE6がネットワークで接続されている状況にした後、X1にUSBカメラを接続していることを確認して、以下のコマンドでサンプルを実行してみます。 *IPアドレスの欄には ATDE6のIPアドレスを指定してください。
root@armadillo:~# DISPLAY=192.168.82.100:0.0 ./sample_convert 0
Gtk-Message: Failed to load module "canberra-gtk-module"
#エラーメッセージも出ますが、とりあえずは無視していいかと思います。 #なお libcanberra-gtk-module をインストールすればメッセージは出なくなります。
これで、ATDE6の画面上に、以下のような画像処理結果のウィンドウが表示されるはずです。
以上です。