OpenCV 5.0.0
Open Source Computer Vision
読み込み中...
検索中...
見つかりません
🤖 AIによる機械翻訳(非公式) — これは OpenCV 5.0.0 公式リファレンス(英語)を AI (Claude) で自動翻訳したものです。訳に誤りを含む場合があります。正確な情報は 公式英語版(原文) を参照してください。

ビデオリーダーインターフェイス。createVideoReader() を参照。 続き...

#include <opencv2/cudacodec.hpp>

Collaboration diagram for cv::cudacodec::VideoReader:

公開メンバ関数

virtual ~VideoReader ()
 
virtual FormatInfo format () const =0
 ビデオファイル形式に関する情報を返す。
 
virtual bool get (const int propertyId, double &propertyVal) const =0
 VideoSource が使用する指定のプロパティを取得する。
 
virtual bool get (const VideoReaderProps propertyId, double &propertyVal) const =0
 指定された VideoReader プロパティを返す。
 
virtual bool getVideoReaderProps (const VideoReaderProps propertyId, double &propertyValOut, double propertyValIn=0) const =0
 
virtual bool grab (cuda::Stream &stream=cuda::Stream::Null())=0
 ビデオソースから次のフレームを取得する。
 
virtual bool nextFrame (cuda::GpuMat &frame, cuda::GpuMat &histogram, cuda::Stream &stream=cuda::Stream::Null())=0
 次のビデオフレームとフレームの輝度ヒストグラムを取得、デコードして返す。
 
virtual bool nextFrame (cuda::GpuMat &frame, cuda::Stream &stream=cuda::Stream::Null())=0
 次の動画フレームを取得・デコードして返す。
 
bool retrieve (cuda::GpuMat &frame) const
 次のビデオフレームを返す。
 
bool retrieve (Mat &frame, const size_t idx) const
 以前に取得したエンコード済みビデオデータを返す。
 
virtual bool retrieve (OutputArray frame, const size_t idx=static_cast< size_t >(VideoReaderProps::PROP_DECODED_FRAME_IDX)) const =0
 以前に取得したビデオデータを返す。
 
virtual bool set (const ColorFormat colorFormat, const BitDepth bitDepth=BitDepth::UNCHANGED, const bool planar=false)=0
 nextFrame()/retrieve() が返すフレームに対して、希望する ColorFormat を設定する。
 
virtual bool set (const VideoReaderProps propertyId, const double propertyVal)=0
 VideoReader のプロパティを設定する。
 
bool setVideoReaderProps (const VideoReaderProps propertyId, double propertyVal)
 

詳細説明

ビデオリーダーインターフェイス。createVideoReader() を参照。

Nvidia の Video Codec SDK がインストールされている場合に利用可能。

デコードのサポートは GPU に依存する。詳細は Nvidia Video Codec SDK の Video Encode and Decode GPU Support Matrix を参照のこと。

覚え書き
  • VideoReader インターフェイスの使い方の例は opencv_source_code/samples/gpu/video_reader.cpp にある。

構築子と解体子の詳解

◆ ~VideoReader()

virtual cv::cudacodec::VideoReader::~VideoReader ( )
inlinevirtual

メンバ関数詳解

◆ format()

virtual FormatInfo cv::cudacodec::VideoReader::format ( ) const
pure virtual

ビデオファイル形式に関する情報を返す。

◆ get() [1/2]

virtual bool cv::cudacodec::VideoReader::get ( const int propertyId,
double & propertyVal ) const
pure virtual

VideoSource が使用する指定のプロパティを取得する。

引数
propertyIdcv::VideoCaptureProperties によるプロパティ識別子(例: cv::CAP_PROP_POS_MSECcv::CAP_PROP_POS_FRAMES など)、あるいは ビデオI/O APIバックエンド向けの追加フラグ のいずれか。
propertyVal指定されたプロパティの値。
戻り値
プロパティが未設定であるかサポートされていない場合を除き、true

◆ get() [2/2]

virtual bool cv::cudacodec::VideoReader::get ( const VideoReaderProps propertyId,
double & propertyVal ) const
pure virtual

指定した VideoReader プロパティを返す。

引数
propertyIdcv::cudacodec::VideoReaderProps からのプロパティ識別子(例: cv::cudacodec::VideoReaderProps::PROP_DECODED_FRAME_IDXcv::cudacodec::VideoReaderProps::PROP_EXTRA_DATA_INDEX など)。
propertyVal
  • In: 特定のpropertyIdを問い合わせる際に必要となる省略可能な値。例えば、キーフレームをチェックする生パッケージのインデックスなど(cv::cudacodec::VideoReaderProps::PROP_LRF_HAS_KEY_FRAME)。
  • Out: プロパティの値。
戻り値
プロパティがサポートされていない場合を除き true

◆ getVideoReaderProps()

virtual bool cv::cudacodec::VideoReader::getVideoReaderProps ( const VideoReaderProps propertyId,
double & propertyValOut,
double propertyValIn = 0 ) const
pure virtual

◆ grab()

virtual bool cv::cudacodec::VideoReader::grab ( cuda::Stream & stream = cuda::Stream::Null())
pure virtual

ビデオソースから次のフレームを取得する。

引数
stream非同期版のためのStream。
戻り値
成功した場合は true(非ゼロ)。

このメソッド/関数は、ビデオファイルまたはカメラから次のフレームを取得(grab)し、成功した場合は true(非ゼロ)を返す。

この関数の主な用途は、rawMode が有効なときにエンコード済みおよびデコード済みの両方のビデオデータを読み込むことである。rawMode を有効にすると、grab() の後に retrieve() を呼び出すことで、直前の grab() 呼び出しまたは VideoReader の生成以降に、現在のビデオソースに関連付けられたすべてのデータを取得できる。

◆ nextFrame() [1/2]

virtual bool cv::cudacodec::VideoReader::nextFrame ( cuda::GpuMat & frame,
cuda::GpuMat & histogram,
cuda::Stream & stream = cuda::Stream::Null() )
pure virtual

次のビデオフレームとフレーム輝度ヒストグラムを取得・デコードして返す。

引数
[out]frameビデオフレーム。
[out]histogramエンコードされたフレームの輝度成分のヒストグラム。注記を参照。
stream非同期版のためのStream。
戻り値
フレームが1つも取得されていない場合は false

フレームが1つも取得されていない場合(ビデオファイルにもうフレームがない場合)、このメソッドは false を返す。エラーが発生した場合は Exception をスローする。

覚え書き
ヒストグラムデータはデコード処理中に NVDEC によって収集されるため、性能上のペナルティは生じない。NVDEC はデコード出力の輝度成分に対してのみヒストグラムデータを計算し、後処理後のフレーム(すなわちスケーリングやクロップなどを適用したもの)に対しては計算しない。ソースが限定された範囲の輝度値でエンコードされている場合(FormatInfo::videoFullRangeFlag == false)、ヒストグラムのビン値はこの限定された範囲の値に対応するため、cuda::calcHist() と同じ出力になるようマッピングする必要がある。必要であれば、ホスト側でこのマッピングを行うために MapHist() ユーティリティ関数を使用できる。

◆ nextFrame() [2/2]

virtual bool cv::cudacodec::VideoReader::nextFrame ( cuda::GpuMat & frame,
cuda::Stream & stream = cuda::Stream::Null() )
pure virtual

次のビデオフレームを取得(grab)、デコードして返す。

引数
[out]frameビデオフレーム。
stream非同期版のためのStream。
戻り値
フレームが1つも取得されていない場合は false

フレームが1つも取得されていない場合(ビデオファイルにもうフレームがない場合)、このメソッドは false を返す。エラーが発生した場合は Exception をスローする。

◆ retrieve() [1/3]

bool cv::cudacodec::VideoReader::retrieve ( cuda::GpuMat & frame) const
inline

次のビデオフレームを返す。

引数
[out]frameビデオフレーム。grab() が呼び出されていない場合、これは空(empty())になる。
戻り値
フレームが1つも取得されていない場合は false

このメソッドは、直前の grab() 呼び出し以降に、現在のビデオソースに関連付けられたデータを返す。データが存在しない場合、このメソッドは false を返し、関数は空の画像を返す。

◆ retrieve() [2/3]

bool cv::cudacodec::VideoReader::retrieve ( Mat & frame,
const size_t idx ) const
inline

以前に取得したエンコード済みビデオデータを返す。

引数
[out]frameエンコードされたビデオデータ。
idximage内に返されるデータを決定する。返されるデータは次のいずれかである:
  • 利用可能であれば追加データ、idx = get(PROP_EXTRA_DATA_INDEX)。
  • 生のエンコードデータパッケージ。パッケージ i を取得するには、idx = get(PROP_RAW_PACKAGES_BASE_INDEX) + i(i < get(PROP_NUMBER_OF_RAW_PACKAGES_SINCE_LAST_GRAB))
戻り値
フレームが1つも取得されていない場合は false

このメソッドは、直前の grab() 呼び出しまたは VideoReader の生成以降に、現在のビデオソースに関連付けられたデータを返す。データが存在しない場合、このメソッドは false を返し、関数は空の画像を返す。

◆ retrieve() [3/3]

virtual bool cv::cudacodec::VideoReader::retrieve ( OutputArray frame,
const size_t idx = static_cast< size_t >(VideoReaderProps::PROP_DECODED_FRAME_IDX) ) const
pure virtual

以前に取得したビデオデータを返す。

引数
[out]frame指定されたidxに依存して返されるデータ。
idximage内に返されるデータを決定する。返されるデータは次のいずれかである:
  • デコードされたフレーム、idx = get(PROP_DECODED_FRAME_IDX)。
  • 利用可能であれば追加データ、idx = get(PROP_EXTRA_DATA_INDEX)。
  • 生のエンコードデータパッケージ。パッケージ i を取得するには、idx = get(PROP_RAW_PACKAGES_BASE_INDEX) + i(i < get(PROP_NUMBER_OF_RAW_PACKAGES_SINCE_LAST_GRAB))
戻り値
フレームが1つも取得されていない場合は false

このメソッドは、直前の grab() 呼び出しまたは VideoReader の生成以降に、現在のビデオソースに関連付けられたデータを返す。データが存在しない場合、このメソッドは false を返し、関数は空の画像を返す。

◆ set() [1/2]

virtual bool cv::cudacodec::VideoReader::set ( const ColorFormat colorFormat,
const BitDepth bitDepth = BitDepth::UNCHANGED,
const bool planar = false )
pure virtual

nextFrame()/retrieve() が返すフレームに対して、希望する ColorFormat を設定する。

引数
colorFormatColorFormatの値。
bitDepth要求されたフレームのビット深度。
planarプレーナーカラー形式の場合はtrue、パックドカラー形式の場合はfalseに設定する。
戻り値
colorFormat がサポートされていない場合を除き true

◆ set() [2/2]

virtual bool cv::cudacodec::VideoReader::set ( const VideoReaderProps propertyId,
const double propertyVal )
pure virtual

VideoReader のプロパティを設定する。

引数
propertyIdcv::cudacodec::VideoReaderProps からのプロパティ識別子(例: cv::cudacodec::VideoReaderProps::PROP_DECODED_FRAME_IDXcv::cudacodec::VideoReaderProps::PROP_EXTRA_DATA_INDEX など)。
propertyValプロパティの値。
戻り値
プロパティが設定された場合は true

◆ setVideoReaderProps()

bool cv::cudacodec::VideoReader::setVideoReaderProps ( const VideoReaderProps propertyId,
double propertyVal )
inline

このクラス詳解は次のファイルから抽出されました: