Grabber::getVideoDataDimension Method
ディスプレイに渡される画像データのサイズを返します。イメージストリーム上にフレームフィルタを挿入する際、setDeviceFrameFiltersクラスライブラリリファレンス>クラス>Grabber>Grabber::setDeviceFrameFilters MethodやsetDisplayFrameFiltersクラスライブラリリファレンス>クラス>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 MethodやstartLiveクラスライブラリリファレンス>クラス>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はライブ画像のサイズを返します。