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

[二〇一七年一月十三日]
USBカメラ3台の映像を、表示させるプログラムを試作中

複数台の(安価な)USB(2.0対応?)カメラの映像群を1台のPCで表示させようとすると、当苑ではmax2台が限度。
PCを2台使えば、カメラ4台の映像表示は可能だが、出来ればこれを6台に増やして、極力、死角を減らしたいと思っている。
それで、USBカメラ3台の映像を、切り換えて表示させるためのプログラムを、VC++で自作してみた。
今は試作途中で、まだ一杯課題が残っているのだが、1段階は進んだ(と思う)ので纏めておく。(ただし、これが上手く動作するのはDEBUG版のみで、RELEASE版ではまだ動作異常になる)

使用した“ツール類”は、“VC++2008OpenCV2.0CMAKE3.7”で、プログラム作成では、
岡山理科大・太田研究室の「OpenCV 2.0 インストール メモ」(リンク先中身消失)を参考にさせて頂いた。感謝!

現プログラムは、1台目は継続表示、2,3台目の“稼動状態”を(約15秒間隔で)切り替えながら、映像を表示させている。(図1)
“稼動状態にある”ことを示すために、ウィンド枠の色替えでもしたいところだが、“現ツール類(VC++2008OpenCV2.0)”では出来ない(?)らしいので、取り敢えず、“枠の上げ下げ”で代用している。(動画1<クリック>

課題としては、もっと対話的(インタラクティブ)に、色々な設定が出来るようにしたいし、PCやUSBカメラを別のものに替えても不具合が発生しないか?対応出来るか?など調べておきたいことも多い。

−−−−−−−−−−−−−−−−−−−−−−−−−
3台目の映像表示は?

自分でプログラムを組んでみて分かったのは、やはり2台までは、USB映像キャプチャ・チャネル(例:Cap1、Cap2)がオープン出来るが、3台目(Cap3)はチャネルがオープン出来ない。(エラーが返って来る)

だが、何とか3台目の映像も見た〜い!
そこで、2台目をある時間休ませて、3台目に切り替えられれば、見られるはず!
1台目は、その間も継続して表示させておけばよい。(図3)

それが、“現ツール類”で出来るかどうかが懸案事項/課題だったが、やってみたら出来た♪
 Cap2.release();
が、休ませるオマジナイ!(図4<クリック>
ただ、この処理を含め次のCap3のチャネル・オープンまでの“切替のオーバーヘッド”に、約1秒間ほどの時間が掛かる。
そんなだと、Cap2,Cap3両方表示のために、スイッチをパチパチと切替るわけにもいかない。
で、2台目、3台目は、固定的に各々約15秒間程度の“稼動時間”を割り当てる方式にした。

これは、「手動」で切り替えたり、「動体認識」で切り替えたり出来ないか?などと考えている。
だが、“現ツール類”では無理かもしれないので、もっと“高機能なツール”が使えるようにならなければいけないかも。
日進月歩?の“ツール類”だから、追い付くのは大変!(苦笑)


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