GoogleAnalytics

SyntaxHighlighter

2011年1月28日金曜日

[LabVIEW]NI-IMAQを使わないでUSB接続Webカメラを使う

以前のエントリで、

> さて、次回はUSB接続Webカメラのプレビュー表示です
> …といきたいところですが、そろそろ仕事がヤバげなので、
> どうなるか不明ですw

とか書いてたんですが、しばらく放置ってのもモヤモヤするので、
とりあえずサクっとやってみました。





色々と苦労はしたんですが、そんな素振りも見せずにブロックダイアグラムをドン。

で、実行画面がこんな感じ。

簡単に解説すると、

[DsDevice.GetDevicesOfCat()]メソッドでビデオインプットデバイスの配列を取得し、
その0番目のデバイスのモニカを取出しています。

フィルターグラフを作り、[IFilterGraph2]インターフェイスの持つ[.AddSourceFilterForMoniker]メソッドを使って、先ほど取り出しておいたビデオインプットデバイスをソースフィルタとして登録します。
そして、そのソースフィルタの出力ピンを取得し、その出力ピンからフィルターグラフをレンダーします。

後は以前のエントリと同様に、フロントパネルに作ったPictureBox内に表示させるよう設定して、
フィルターグラフを実行させています。


このやり方と前回のエントリで紹介した静止画キャプチャを組み合わせると、
こんな感じでWebカメラの画像を静止画として2Dピクチャに取り込むことができます。
~~~

これで一連のエントリは終了です。おつかれっしたw
…では仕事に戻りますorz


***** 2011/01/28 16:44 追記 *****

上記「DS_WebCamGrabber.vi」は最初に開発に使ってたXP上では上手く動いたんですが、
別のVistaに持って行くとプレビューは流れるんですが静止画キャプチャに失敗しました。

…どうも自動でレンダーさせたときにサンプルグラバーに上手くピンが繋がってないようです。
次エントリで修正したものを挙げます。

0 件のコメント: