Grabber::getVideoDataDimension Method

ディスプレイに渡される画像データのサイズを返します。イメージストリーム上にフレームフィルタを挿入する際、setDeviceFrameFiltersクラスライブラリリファレンス>クラス>Grabber>Grabber::setDeviceFrameFilters MethodsetDisplayFrameFiltersクラスライブラリリファレンス>クラス>Grabber>Grabber::setDisplayFrameFilters Methodを使用しているとデバイスのビデオフォーマットによってサイズに違いは出ます。IFrameFilterクラスライブラリリファレンス>クラス>IFrameFilterオブジェクトがFrameHandlerSinkクラスライブラリリファレンス>クラス>FrameHandlerSinkによって使用されている場合、MemBufferCollectionクラスライブラリリファレンス>クラス>MemBufferCollectionのサイズも画像データのサイズと違うことがございます。

構文

bool getVideoDataDimension( SIZE& dim ) const;
パラメータ 説明
dim 画像データのサイズ。

戻り値

処理が正常に完了した場合にはtrueを返します。もしエラーが発生した場合にはgetLastErrorクラスライブラリリファレンス>クラス>Grabber>Grabber::getLastError Methodをコールしてエラー情報の詳細を取得してください。

備考

この情報を取得できるのはprepareLiveクラスライブラリリファレンス>クラス>Grabber>Grabber::prepareLive MethodstartLiveクラスライブラリリファレンス>クラス>Grabber>Grabber::startLive Methodへのコールによってイメージストリームのセットアップが完了してからになります。

インフォメーション

IC Imaging Control 3.0より導入。

サンプル

以下のコードはstdfilters.ftfからのROIフィルタを使用しライブ画像のビデオフォーマット(サイズ)を変更しています。

Grabber grabber;
grabber.showDevicePage();

// ROIフィルタのインスタンスを作成し、ユーザーがROIの変更をできるようにする
smart_com <IFrameFilter> pROIFilter = FilterLoader::createFilter( "ROI" );
pROIFilter->callDialog( 0 );

// フィルタをセットしprepareLiveをコールする
grabber.setDisplayFrameFilters( pROIFilter.get() );
grabber.prepareLive( true );

// prepareLiveへのコール後、getVideoDataDimensionがライブ画像のサイズを返す
SIZE dim;
if( grabber.getVideoDataDimension( dim ) )
{
  std::cout  << "Display video format: " << dim.cx << "x" << dim.cy << std::endl;
}
else
{
  std::cerr << "Unable to determine display video format" << std::endl;
}

prepareLiveクラスライブラリリファレンス>クラス>Grabber>Grabber::prepareLive Methodがコールされた後、getVideoDataDimensionはライブ画像のサイズを返します。