GoogleAnalytics

SyntaxHighlighter

2011年2月8日火曜日

[LabVIEW]DirectShowLib_for_LabVIEWのNTSCキャプチャへの対応

以前に紹介した「DirectShowLib_for_LabVIEW」ですが、『PC-SDVD/U2G』のようなNTSCキャプチャーデバイスに対応させるため、一部変更を行いました(ダウンロードは本エントリからどうぞ)。

DS_PrepareFromCameraName.viを、手作業でフィルターピンを繋ぐやり方から、ICaptureGraphBuilder2::RenderStreamメソッドを使うやり方に変更しました。
これにより、NTSCキャプチャーデバイスからの映像処理に必要なクロスバー用フィルタの作成が自動で行われるようになっています。

デジカメ『GE C1033』からのライブビューを『PC-SDVD/U2G』でキャプチャーし、それをLLB同梱のDemo_CameraSnap.viで取り込んだときの様子です。


これで応用範囲が広がりんぐですねw

6 件のコメント:

こねっと さんのコメント...

素晴らしいviの公開ありがとうございます。

DirectShowについて色々調べたのですが、自分では解決できなかったので質問します。
キャプチャサイズを変更するにはどうしたら良いのでしょうか

kanitawa さんのコメント...

> キャプチャサイズを変更するにはどうしたら良いのでしょうか

現状のライブラリでは、接続されたカメラのサイズでライブビューを表示し、静止画キャプチャーも同サイズでグラブします。

静止画キャプチャーを異なるサイズでおこなうためにライブラリに手を入れるくらいなら、カメラサイズでグラブした後に、その画像をLabVIEWが自前で持っている関数でトリミング等サイズ変更したほうが簡単でしょう。

ライブビューをカメラサイズからトリミングした状態で行いたいのであれば、「IVideoWindow::SetWindowPosiiton」に与えているパラメータを変更すれば可能だと思います。

こねっと さんのコメント...

お返事ありがとうございます。

早速試してみました、
表示サイズの変更をすることができました。

質問の意図ですが、当方、1600×1200のWEBカメラを購入したのですが
フルサイズでは取得できず640×480でしか取得できないのですが、これはやはりNTSCでのキャプチャのためでしょうか

kanitawa さんのコメント...

> 当方、1600×1200のWEBカメラを購入したのですが
> フルサイズでは取得できず640×480でしか取得できないのですが、
> これはやはりNTSCでのキャプチャのためでしょうか

そりゃ、NTSCキャプチャに使ってるグラバーボードが
640x480しか取り込めてないだけなんじゃ?

Webカメラ、NTSCグラバーボードの設定(と取説)を
ご覧になられることをお勧めします。

こねっと さんのコメント...

DirectShowについて色々調べてみたのですが
IAMStreamConfig 付近の情報が気になったので
自分でももう少しチャレンジしてみます。

http://msdn.microsoft.com/ja-jp/library/cc355069.aspx

おおはし さんのコメント...

LabVIEWの活用範囲を広げられそうなVIの公開ありがとうございます。
取りつきにくくて難解な.NETのワイアリングのお手本になりました。
私のブログで紹介させていただきました。