OpenCVでテンプレートマッチングを行うソースコードを作ったのでシェアします。
解析結果を合成した画像を/tmp/result.jpgに生成するようにしてあります。 mjpeg_streamerのinput_file.soなどと組み合わせることで、結果を簡単に確認することができます。
OpenCVでテンプレートマッチングを行うソースコードを作ったのでシェアします。
解析結果を合成した画像を/tmp/result.jpgに生成するようにしてあります。 mjpeg_streamerのinput_file.soなどと組み合わせることで、結果を簡単に確認することができます。
Armadillo-840はタッチスクリーンライブラリにマルチタッチ対応のmtdevを採用しています。 しかし抵抗膜式などのタッチスクリーンコントローラをArmadillo-840に接続する際には、mtdevではなく シングルタッチ向けのtslibを使いたくなるケースが出てきます。
ここでは、mtdevではなくtslibを使ってQtのアプリケーションを実行するまでの手順を記述します。
本記事は、Armadillo-840液晶モデル開発セットでの動作を想定したものではありません。
以下のタッチスクリーンコントローラ(TSC2007)を接続した環境で、試しております。
http://www.tij.co.jp/product/jp/tsc2007
(TSC2007を動かすためのカーネルの設定がすでに行われていることが前提となっています。)
Armadillo-440とArmadillo-840のLCD表示と同じ画面をPCのWebブラウザで見る方法を考えてみました。 フレームバッファをJPEGファイルにして、mjpg_streamerで見ることにしました。
添付 lcd2jpeg_a440.zip,
lcd2jpeg_a840.zip
の srcディレクトリ フレームバッファをJPEGファイル化するソース lcd2jpegを実行すると/var/tmp/for_lcd2jpeg/jpeg_file/lcd.jpg
にJPEGファイルが生成されます。
sample_exeディレクトリ lcd2jpegとmjpg_streamerの実行を組み合わせたサンプルスクリプトstart_lcd2mjpgを実行して、PCのWebブラウザで、URLを[ArmadilloのIPアドレス]:8080とすると
LCD表示と同じ画面が見れます。
補足)
Armadillo-840液晶モデルの拡張ボードには、オーディオコーデック(Wolfson WM8978)が 搭載されています。
http://manual.atmark-techno.com/armadillo-840/armadillo-840_product_manual_ja-1.2.0/ch08.html#sct.kernel_spec.drivers.audio
拡張ボードのヘッドフォン出力(CON6)から、テストサウンドを再生するには、 以下のコマンドを実行します。
[root@armadillo840-0 (ttySC2) ~]#gst-launch-1.0 audiotestsrc ! \ "audio/x-raw,channels=2,rate=48000,width=16" ! \ alsasink device=hw:1
*以下も参照 http://manual.atmark-techno.com/armadillo-840/armadillo-840_product_manual_ja-1.2.0/ch06.html#sct.audio
Armadillo-800シリーズでは、DisplayLink 社のチップが搭載された USB接続可能なモニタやディスプレイアダプタを簡単に使用することが できます。
USB接続モニタ(またはディスプレイアダプタ)を使用するには、 以下のLinuxカーネルコンフィギュレーションを変更してください。
Linux/arm 3.4-at6 Kernel Configuration Device Drivers ---> Graphics support ---> <*> Support for frame buffer devices ---> <*> Displaylink USB Framebuffer support ← 有効化
上記のコンフィギュレーションを設定したLinuxカーネルを使うことで、 USB接続モニタが/dev/fb2等のデバイスファイルから使用できるように なります。
Armadillo-420上でunzipを使ってzipファイルを解凍しようとすると、 以下のように失敗する。
[root@armadillo420-0 (ttymxc1) ~]# unzip test.zip Archive: test.zip unzip: Unsupported compression method 0
zipファイルの圧縮メソッド(アルゴリズム)が、無圧縮(stored)になっているため。
zipファイルの圧縮メソッドについては、以下のURLに説明があります。 http://www.wdic.org/w/TECH/ZIP - 圧縮アルゴリズム
Armadillo-400シリーズに標準でインストールされているbusybox 1.00.rc3のunzipでは、 一般的に使用されている[Deflate]という圧縮メソッド以外は、対応できていません。
atmark-dist/user/busybox/busybox-1.00.rc3/archival/unzip.c
http://stackoverflow.com/questions/20633654/create-a-multi-touch-qt-5-1-application
上記URLを参考に、Qtでマルチタッチができるかどうかを試してみました。
コードは以下の通り。
romfs-a810-v1.04.img.gz の空きディスクスペースは約2.0MBです。
atmark@atde5:~$ df -h Filesystem Size Used Avail Use% Mounted on /dev/loop0 39M 35M 2.0M 95% /home/atmark/romfs
例えば、OpenCVを取り敢えずインストールしておきたい場合などに 直接インストールしようとしても、ディスクスペースが足りません。
そのような時には、ディスクスペースを拡張することで解決できます。
簡単にromfsイメージにファイルを追加したい場合などに使えるテクニックです。
romfsイメージを直接ATDEでマウントしファイルを追加すると、 簡単にカスタマイズされたromfsイメージを作成することができます。
次のようにすると、ATDE上にマウントすることができます。
atmark@atde5:~$ mkdir romfs atmark@atde5:~$ gzip -dc romfs.img.gz > romfs.img atmark@atde5:~$ sudo mount -t ext2 -o loop romfs.img romfs
マウントすると、通常と同様にファイルの読み書きが行えます。 例えば、binディレクトリにhelloを配置したい場合は、次のようにします。
atmark@atde5:~$ sudo cp hello romfs/bin/hello
カスタマイズ後、再度圧縮イメージに戻すには、アンマウント、圧縮を行います。