Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
この記事に対してトラックバックを送信する(FC2ブログユーザー)
http://yahirohumpty.blog2.fc2.com/tb.php/278-012af4ec

-件のトラックバック

-件のコメント

コメントの投稿

投稿フォーム
投稿した内容は管理者にだけ閲覧出来ます

DirectShowでカメラの設定をいじる

今調べてるけど調べる段階で超めんどくさい.
ので積極的にメモ.


まず,何をすべきか?
カメラキャプチャフィルタからとってきた出力ピンから,
IAMStreamConfigを取得する.
QueryInterfaceでIID_IAMStreamConfigを指定すればいい.

IAMStreamConfigは以下のメンバメソッドを持つ.

  • GetFormat

  • GetNumberOfCapabilities

  • GetStreamCaps

  • SetFormat



GetFormat,SetFormatでは引数にAM_MEDIA_TYPEへのポインタを持つ.
AM_MEDIA_TYPEは,
formattypeがFORMAT_VideoInfoのとき,
pbFormatにVIDEOINFOHEADERのポインタを持っている.

VIDEOINFOHEADERのメンバのうち,
AvgTimePerFrameには100ns単位のサンプリングタイムが入る.
さらにbmiHeaderにはBITMAPINFOHEADERが入る.

BITMAPINFOHEADERのbiWidth,biHeightが画像サイズ.

事前に何をどこまで設定できるかは,
GetStreamCapsで取得することができる.
第一引数のintが取れる範囲はGetNumberOfCapabilitiesでわかる.
とった値に応じた推奨フォーマットがAM_MEDIA_TYPEとして生成される.
第三引数に渡すVIDEO_STREAM_CONFIG_CAPSをあらかじめ用意しておく.

VIDEO_STREAM_CONFIG_CAPSのメンバで
MinCroppingSize,MaxCroppingSizeで設定可能な解像度がわかる.
これはSIZEなので,cx,cyを参照する.


まずは推奨フォーマットの値をダンプしてみて,
それから設定を行ってみるか.
スポンサーサイト
この記事に対してトラックバックを送信する(FC2ブログユーザー)
http://yahirohumpty.blog2.fc2.com/tb.php/278-012af4ec

0件のトラックバック

0件のコメント

コメントの投稿

投稿フォーム
投稿した内容は管理者にだけ閲覧出来ます

Appendix

プロフィール

yahirohumpty

  • Author:yahirohumpty
  • 某大学の研究員です.
    博士号持ってます.
    ビジョンとロボットが専門.
    その他もろもろのことに興味があります.

ブロとも申請フォーム

この人とブロともになる

ブログ内検索

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。