[表紙頁]へ  関連記事の目次へ

[二〇一七年一月十九日]
USBカメラ3台の映像表示プログラムを、改良中−其の2

先回に引き続いて、“映像表示プログラム”の作成・改良作業が、(しんどいけど)面白くて♪仕方が無い状態。
しかし、ツール類が自分の手に合わないので、ぶつぶつ独り言/文句を垂れながらあれこれ取り替えてみている。
VS 2015は2度インストールして、どうも肌に合わず、2度アンインストールした)
結局、VC++2015は辞退して、VC++2008 ExpressOpenCV2.0を使うことにした。

まだ、今回のプログラム(/ボログラムとも?)は、起動してから手操作が必要だったり、各カメラの調節が出来なかったり、動作中に突然終了してしまったりする不具合群があるのだが、一応、3台のUSBカメラの映像を、3画面に映すことが出来るようになったので、現用系の片側に組み込んで試用してみることにした。(図1下側)

これまで、LiveCap2を利用させて貰って、PC2台で4台のUSBカメラの映像表示が出来ていた。(図2<クリック>
その系でも、動くもの(人や車)は、少しギクシャク/飛び々々に映るのだが、やはりPC1台で“カメラ3台表示”にすると、やたら“画飛び”が酷くなる。これをもう少し改善したい。

ネットで調べている内に、「EWCLIB」(サイト)や「ESPLIB」(サイト)というライブラリが提供されているのを発見!
これは、良さげ!上手く使えれば、高速化などが図れるかもしれないので、検討してみたい!

−−−−−−−−−−−−−−−−−−−−−−−−−
プログラムの移植性

実は、先回作ったプログラムは、そのままでは他のマシンで動作しなかった。(苦)
そこで、バグを探すために、ネット上で紹介されていた「Dependency Walker 2.2」を使わせて貰って(TNX!)、“依存性”を追っ掛けたら、“不足するDLLなど”が分かった。(図4<クリック> 図中のcxcore200d.dllはデバッグ用で、実行にはcxcore200.dllを使う)

素人考えでは、こんなのは全部、実行ファイル(.exe)の中に組み込んでおいて欲しいものだと思うのだが、そのサイズを見ると結構大きい(約2MB)ので、やはり“外置き・呼び込み型のDLL”にせざるを得ないのかな?!と独り納得!もしかして、勘違い?
(これを見ると、本体の「USBCam3_x.exeファイル」が、ほんに可愛らしいこと♪...まぁ、この量からも、その仕事量が、推測出来るというもんだ)

オプションで、「include」や「lib」の「パス指定」などはちゃんと記入してあるし、幾度も確かめた。
更に、“VC++コード生成の時に、マルチスレッド(/MT)にセットすれば、組み込める”というのもやっているが、それでも上手く行かず。
因みに、これより前に、“Visual C++2008 再頒布可能パッケージ”は、ダウンロードして組み込んであったのだが、それでも不足だった。

多分、コンパイル時に、未だ何か設定が不十分なのだろうと思うが、取り敢えず、他マシンを汚さないために、「実行ファイル」の傍に置いて“フォルダごと一緒に移す”ようにしてみた。(図3)
結果、他マシンでも動き出した。 ・・・これにて一件だけ落着!(笑)

課題など

現在のプログラムは、“掘っ立て小屋”状態で、塀は剥き出しだし、雨漏りはするし、風が吹けばトタン屋根が飛んで行きそう。(苦笑)

まず、立ち上がった後、“メインwindow”が居座ったままで、ちゃんと“縮小”も出来ていない。(図5)
当然、追加の“設定変更”なども出来ない。
更に大きな問題は、“映像の更新速度”が遅いことだ。
例えば、時計の秒針が、2秒おきにしか映らない...とか。(図6<クリック> 苦笑)

お蔭で(?)、道路を走る車が、前、横、後ろ姿と3画面に(尾を引いて)映ってしまう。
(面白いといえば面白いが、正しく記録したい場合には、拙いだろうな)

そして、今は、ちゃんとした“エラー処理”をサボっているので、時々「動作を停止しました」とか「この問題に関する詳細情報を送信しますか?」とかのメッセージが出て来る。

これらの問題・課題は、少しずつ片付けて行きたいと思っているが、何せ“亀の歩み”だからなぁ。(苦笑)


[表紙頁]へ  関連記事の目次へ