OpenCV 4.5.3(日本語機械翻訳)
全て クラス 名前空間 ファイル 関数 変数 型定義 列挙型 列挙値 フレンド グループ ページ
公開メンバ関数 | 静的公開メンバ関数 | 限定公開変数類 | フレンド | 全メンバ一覧
cv::VideoCapture クラス

Class for video capturing from video files, image sequences or cameras. [詳解]

#include <videoio.hpp>

公開メンバ関数

CV_WRAP VideoCapture ()
デフォルトコンストラクタ[【詳解】(英語]
CV_WRAP VideoCapture (const String &filename, int apiPreference=CAP_ANY)
ビデオファイル,キャプチャデバイス,またはビデオキャプチャ用のIPビデオストリームを,API Preferenceで開きます.[【詳解】(英語]
CV_WRAP VideoCapture (const String &filename, int apiPreference, const std::vector< int > &params)
ビデオファイル、キャプチャーデバイス、またはIPビデオストリームを開き、API Preferenceとパラメーターを使ってビデオキャプチャーを行います。[【詳解】(英語]
CV_WRAP VideoCapture (int index, int apiPreference=CAP_ANY)
ビデオキャプチャー用のカメラを開く[【詳解】(英語]
CV_WRAP VideoCapture (int index, int apiPreference, const std::vector< int > &params)
ビデオキャプチャー用のカメラを、API Preference とパラメータを用いてオープンします。[【詳解】(英語]
virtual ~VideoCapture ()
デフォルトのデストラクタ[【詳解】(英語]
virtual CV_WRAP bool open (const String &filename, int apiPreference=CAP_ANY)
ビデオキャプチャー用のビデオファイル、キャプチャーデバイス、IP ビデオストリームを開きます。[【詳解】(英語]
virtual CV_WRAP bool open (const String &filename, int apiPreference, const std::vector< int > &params)
ビデオキャプチャー用のカメラを開く[【詳解】(英語]
virtual CV_WRAP bool open (int index, int apiPreference=CAP_ANY)
ビデオキャプチャー用のカメラを開く[【詳解】(英語]
virtual CV_WRAP bool open (int index, int apiPreference, const std::vector< int > &params)
ビデオキャプチャーがすでに初期化されている場合、trueを返します。[【詳解】(英語]
virtual CV_WRAP bool isOpened () const
ビデオキャプチャーがすでに初期化されている場合、trueを返します。[【詳解】(英語]
virtual CV_WRAP void release ()
ビデオファイルやキャプチャデバイスを閉じます.[【詳解】(英語]
virtual CV_WRAP bool grab ()
ビデオファイルまたはキャプチャーデバイスから 次のフレームを取得します。[【詳解】(英語]
virtual CV_WRAP bool retrieve (OutputArray image, int flag=0)
キャプチャしたビデオフレームをデコードして返します。[【詳解】(英語]
virtual VideoCapture & operator>> (CV_OUT Mat &image)
次のビデオフレームを読み込むためのストリーム演算子。[【詳解】(英語]
virtual VideoCapture & operator>> (CV_OUT UMat &image)
virtual CV_WRAP bool read (OutputArray image)
次のビデオフレームを取得し、デコードして返します。[【詳解】(英語]
virtual CV_WRAP bool set (int propId, double value)
でプロパティを設定します.VideoCapture.[【詳解】(英語]
virtual CV_WRAP double get (int propId) const
戻り値は、指定したVideoCaptureプロパティ[【詳解】(英語]
CV_WRAP String getBackendName () const
使用されているバックエンドのAPI名を返します[【詳解】(英語]
CV_WRAP void setExceptionMode (bool enable)
CV_WRAP bool getExceptionMode ()
例外モードが有効な場合の問い合わせ

静的公開メンバ関数

static bool waitAny (const std::vector< VideoCapture > &streams, CV_OUT std::vector< int > &readyIndex, int64 timeoutNs=0)
入力ビデオストリームからのレディフレームをVideoCapture.[【詳解】(英語]

限定公開変数類

Ptr< CvCapture > cap
Ptr< IVideoCapture > icap
bool throwOnFail

フレンド

class internal::VideoCapturePrivateAccessor

詳解

ビデオファイル,イメージシーケンス,またはカメラからビデオをキャプチャするためのクラスです。

このクラスは、カメラからビデオをキャプチャしたり、ビデオファイルやイメージシーケンスを読み込んだりするためのC++ APIを提供します。

ここでは、このクラスの使い方を説明します。

覚え書き
C APIVideoCaptureの代わりにブラックボックス構造のCvCaptureを使用しています。
  • (C++)VideoCapture インターフェースを使用した基本的なサンプルは,以下のサイトにあります。OPENCV_SOURCE_CODE/samples/cpp/videocapture_starter.cpp
  • (Python) VideoCapture インターフェースの使用に関する基本的なサンプルは,以下のサイトにあります。OPENCV_SOURCE_CODE/samples/python/video.py
  • (Python) マルチスレッドのビデオ処理サンプルは、以下にあります。OPENCV_SOURCE_CODE/samples/python/video_threaded.py
  • (Python) Video4Linux2 バックエンドのいくつかの機能を紹介する VideoCapture サンプルOPENCV_SOURCE_CODE/samples/python/video_v4l2.py

構築子と解体子

VideoCapture() [1/5]

CV_WRAP cv::VideoCapture::VideoCapture ( )

デフォルトコンストラクタ

覚え書き
C APIビデオの処理が終わったら, cvReleaseCapture() を用いて CvCapture 構造体を解放するか, cvReleaseCapture を呼び出す <CvCapture> を利用します.Ptrデストラクタ内で自動的に cvReleaseCapture() を呼び出す <CvCapture> を利用します.

VideoCapture() [2/5]

CV_WRAP cv::VideoCapture::VideoCapture ( const String & filename,
int apiPreference = CAP_ANY
)
explicit

ビデオファイル,キャプチャデバイス,またはビデオキャプチャ用のIPビデオストリームを,API Preferenceで開きます.

これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。

引数
filename とすることができます.
  • ビデオファイルの名前(例.video.avi)
  • またはイメージシーケンス(例img_%02d.jpgのようなサンプルを読み込むことができます。img_00.jpg, img_01.jpg, img_02.jpg, ...)
  • ビデオストリームのURL(例protocol://host:port/script_name?script_params|auth)
  • GStreamer がバックエンドとして使用されている場合には、GStreamer のパイプライン文字列(gst-launch tool format) ビデオストリームまたは IP カメラフィードはそれぞれ独自の URL スキームを持っていることに注意してください。正しい URL を知るためには、ソースストリームのドキュメントを参照してください。
apiPreference 使用するCapture API バックエンドを指定します。複数のリーダーが利用可能な場合、特定のリーダーの実装を強制するために使用することができます。cv::CAP_FFMPEGまたはcv::CAP_IMAGESまたはcv::CAP_DSHOW.
参照
cv::VideoCaptureAPIs

VideoCapture() [3/5]

CV_WRAP cv::VideoCapture::VideoCapture ( const String & filename,
int apiPreference,
const std::vector< int > & params
)
explicit

ビデオファイル、キャプチャーデバイス、またはIPビデオストリームを開き、API Preferenceとパラメーターを使ってビデオキャプチャーを行います。

これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。

のクラスはスレッドセーフではありません。paramsパラメータでは、ペアでエンコードされた追加のパラメータを指定できます。(paramId_1, paramValue_1, paramId_2, paramValue_2, ...). 参照cv::VideoCaptureProperties

VideoCapture() [4/5]

CV_WRAP cv::VideoCapture::VideoCapture ( int index,
int apiPreference = CAP_ANY
)
explicit

ビデオキャプチャー用のカメラを開く

これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。

引数
index 開くビデオキャプチャーデバイスのid。デフォルトのバックエンドを使用してデフォルトのカメラを開くには、0を渡します(後方互換性のため、camera_id + domain_offset (CAP_*)の使用は、apiPreferenceがCAP_ANYの場合に有効です)。
apiPreference 使用するCapture API バックエンドを指定します。複数のリーダーが利用可能な場合、特定のリーダーの実装を強制するために使用することができます。cv::CAP_DSHOWまたはcv::CAP_MSMFまたはcv::CAP_V4L.
参照
cv::VideoCaptureAPIs

VideoCapture() [5/5]

CV_WRAP cv::VideoCapture::VideoCapture ( int index,
int apiPreference,
const std::vector< int > & params
)
explicit

ビデオキャプチャー用のカメラを、API Preference とパラメータを用いてオープンします。

これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。

のクラスはスレッドセーフではありません。paramsパラメータでは、ペアでエンコードされた追加のパラメータを指定できます。(paramId_1, paramValue_1, paramId_2, paramValue_2, ...). 参照cv::VideoCaptureProperties

~VideoCapture()

virtual cv::VideoCapture::~VideoCapture ( )
virtual

デフォルトのデストラクタ

このメソッドは、まずVideoCapture::releaseを呼び出し、既に開いているファイルやカメラを閉じます。

関数詳解

get()

virtual CV_WRAP double cv::VideoCapture::get ( int propId ) const
virtual

戻り値は、指定したVideoCaptureプロパティ

引数
propId プロパティの識別子cv::VideoCaptureProperties(例cv::CAP_PROP_POS_MSEC,cv::CAP_PROP_POS_FRAMESからのプロパティ識別子(例: , ... )またはAdditional flags for video I/O API backends
戻り値
指定されたプロパティの値。が使用しているバックエンドでサポートされていないプロパティを照会すると、値 0 が返されます。VideoCaptureインスタンスを作成します。
覚え書き
プロパティの読み書きには多くのレイヤーが関わっています。この連鎖の中で、予期せぬ結果が起こるかもしれません。
VideoCapture -> API Backend -> Operating System -> Device Driver -> Device Hardware
CV_WRAP VideoCapture()
Default constructor
Backend
Enum of computation backends supported by layers.
Definition: dnn/dnn.hpp:66
返された値は、デバイスで実際に使用されているものとは異なるかもしれませんし、デバイスに依存するルール(例:ステップやパーセンテージ)を使用してエンコードされているかもしれません。効果的な動作は、デバイスドライバーとAPIバックエンドに依存します。

getBackendName()

CV_WRAP String cv::VideoCapture::getBackendName ( ) const

使用されているバックエンドのAPI名を返します

覚え書き
ストリームを開く必要があります。

grab()

virtual CV_WRAP bool cv::VideoCapture::grab ( )
virtual

ビデオファイルまたはキャプチャーデバイスから 次のフレームを取得します。

戻り値
true(成功した場合、0 以外の値を返します。

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

この関数の主な用途は、マルチカメラ環境で、特にカメラがハードウェア同期していない場合です。つまり,各カメラに対してVideoCapture::grab()を呼び出し,その後,より低速なメソッドであるVideoCapture::retrieve()を呼び出してデコードし,各カメラからフレームを取得します.こうすることで、デモザイキングやモーションJPEGの解凍などのオーバーヘッドがなくなり、異なるカメラから取得したフレームの時間が近くなります。

また、接続されたカメラがマルチヘッドの場合(ステレオカメラやKinectデバイスなど)、データを取得する正しい方法は、最初にVideoCapture::grab()を最初に呼び出し、次にVideoCapture::retrieve()を複数回、チャンネルパラメータの値を変えて呼び出すことです。

tutorial_kinect_openni

isOpened()

virtual CV_WRAP bool cv::VideoCapture::isOpened ( ) const
virtual

ビデオキャプチャーがすでに初期化されている場合、trueを返します。

前の呼び出しがVideoCaptureコンストラクタまたはVideoCapture::open()が成功した場合、このメソッドはtrueを返します。

open() [1/4]

virtual CV_WRAP bool cv::VideoCapture::open ( const String & filename,
int apiPreference,
const std::vector< int > & params
)
virtual

ビデオキャプチャー用のカメラを開く

これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。

のクラスはスレッドセーフではありません。paramsパラメータでは、ペアでエンコードされた追加のパラメータを指定できます。(paramId_1, paramValue_1, paramId_2, paramValue_2, ...). 参照cv::VideoCaptureProperties

戻り値
trueファイルのオープンに成功した場合

このメソッドは、まずVideoCapture::releaseを呼び出し、既に開いているファイルやカメラを閉じます。

open() [2/4]

virtual CV_WRAP bool cv::VideoCapture::open ( const String & filename,
int apiPreference = CAP_ANY
)
virtual

ビデオキャプチャー用のビデオファイル、キャプチャーデバイス、IP ビデオストリームを開きます。

これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。

パラメータはコンストラクタと同じです。VideoCapture(const String& filename, int apiPreference = CAP_ANY)

戻り値
trueファイルのオープンに成功した場合

このメソッドは、まずVideoCapture::releaseを呼び出し、既に開いているファイルやカメラを閉じます。

open() [3/4]

virtual CV_WRAP bool cv::VideoCapture::open ( int index,
int apiPreference,
const std::vector< int > & params
)
virtual

ビデオキャプチャーがすでに初期化されている場合、trueを返します。

これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。

のクラスはスレッドセーフではありません。paramsパラメータでは、ペアでエンコードされた追加のパラメータを指定できます。(paramId_1, paramValue_1, paramId_2, paramValue_2, ...). 参照cv::VideoCaptureProperties

戻り値
trueカメラのオープンに成功した場合

このメソッドは、まずVideoCapture::releaseを呼び出し、既に開いているファイルやカメラを閉じます。

open() [4/4]

virtual CV_WRAP bool cv::VideoCapture::open ( int index,
int apiPreference = CAP_ANY
)
virtual

ビデオキャプチャー用のカメラを開く

これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。

パラメータはコンストラクタと同じです。VideoCapture(int index, int apiPreference = CAP_ANY)

戻り値
trueカメラのオープンに成功した場合

このメソッドは、まずVideoCapture::releaseを呼び出し、既に開いているファイルやカメラを閉じます。

operator>>() [1/2]

virtual VideoCapture & cv::VideoCapture::operator>> ( CV_OUT Mat & image )
virtual

次のビデオフレームを読み込むためのストリーム演算子。

参照
read()

operator>>() [2/2]

virtual VideoCapture & cv::VideoCapture::operator>> ( CV_OUT UMat & image )
virtual

これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。

参照
read()

read()

virtual CV_WRAP bool cv::VideoCapture::read ( OutputArray image )
virtual

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

引数
[out]. image ここでは、ビデオフレームが返されます。フレームを取得していない場合は、画像は空になります。
戻り値
falseフレームが取得されていない場合

このメソッド/関数はVideoCapture::grab()およびVideoCapture::retrieve()を1回の呼び出しで行います。ビデオファイルを読み込んだり、デコードからデータを取り込んだりするのに最も便利な方法で、取り込んだばかりのフレームを返します。フレームが取得されなかった場合(カメラが切断された,あるいは,ビデオファイルにフレームが存在しない),このメソッドは false を返し,この関数は空の画像を返します( cv::Mat を利用する場合は,以下のコマンドでテストしてください).Mat::empty()).

覚え書き
C API関数 cvRetrieveFrame() と cv.RetrieveFrame() は,ビデオキャプチャ構造体に格納された画像を返します.この画像を変更したり,解放したりすることはできません.cvCloneImage を使ってフレームをコピーし,そのコピーを使って好きなことをすることができます.

release()

virtual CV_WRAP void cv::VideoCapture::release ( )
virtual

ビデオファイルやキャプチャデバイスを閉じます.

このメソッドは,後続のVideoCapture::openVideoCaptureデストラクタから自動的に呼び出されます.

また,この C 関数は,メモリを解放し,*capture ポインタをクリアします.

retrieve()

virtual CV_WRAP bool cv::VideoCapture::retrieve ( OutputArray image,
int flag = 0
)
virtual

キャプチャしたビデオフレームをデコードして返します。

引数
[out]. image ここでは、ビデオフレームが返されます。フレームを取得していない場合は、画像は空になります。
flag これはフレームインデックスやドライバ固有のフラグの場合もあります。
戻り値
falseフレームが取得されていない場合

このメソッドは、取り込まれたばかりのフレームをデコードして返します。フレームが取得されなかった場合(カメラが切断された,あるいは,ビデオファイルにフレームが残っていない),このメソッドは false を返し,この関数は空の画像を返します( cv::Mat の場合は,次のコマンドでテストしてください).Mat::empty()).

参照
read()
覚え書き
C API関数 cvRetrieveFrame() と cv.RetrieveFrame() は,ビデオキャプチャ構造体に格納された画像を返します.この画像を変更したり,解放したりすることはできません.cvCloneImage を使ってフレームをコピーし,そのコピーを使って好きなことをすることができます.

set()

virtual CV_WRAP bool cv::VideoCapture::set ( int propId,
double value
)
virtual

でプロパティを設定します.VideoCapture.

引数
propId プロパティの識別子cv::VideoCaptureProperties(例cv::CAP_PROP_POS_MSEC,cv::CAP_PROP_POS_FRAMESからのプロパティ識別子(例: , ... )またはAdditional flags for video I/O API backends
value そのプロパティの値.
戻り値
trueが利用しているバックエンドが,そのプロパティをサポートしているかどうかを確認します.VideoCaptureインスタンスを作成します。
覚え書き
を返したとしてもtrueを返したとしても,そのプロパティの値がキャプチャデバイスに受け入れられたことを保証するものではありません.の注記を参照してください。VideoCapture::get()

setExceptionMode()

CV_WRAP void cv::VideoCapture::setExceptionMode ( bool enable )
inline

例外モードの切り替え

メソッドは、成功しなかった場合にエラーコードを返すのではなく、例外を発生させます。

waitAny()

static bool cv::VideoCapture::waitAny ( const std::vector< VideoCapture > & streams,
CV_OUT std::vector< int > & readyIndex,
int64 timeoutNs = 0
)
static

入力ビデオストリームからのレディフレームをVideoCapture.

引数
streams 入力ビデオストリーム
readyIndex 取得したフレームを含むストリームのインデックス (実際のフレームを取得するために .NET を使用する準備ができている)retrieve()を使用して実際のフレームを取得できます)
timeoutNs ナノ秒単位(0~無限)で指定します。
戻り値
truestreamReadyが空でない場合
例外
Exception ストリームエラー時の例外(不正なストリームを除外するために .isOpened()をチェックして不正なストリームを除外する)、またはVideoCaptureタイプがサポートされていない場合

この関数の主な用途は、マルチカメラ環境での使用です。このメソッドは,カメラの準備ができていれば, ready 状態のベクトルを埋め,ビデオフレームを取得します.

この呼び出しの後にVideoCapture::retrieve()を使ってフレームデータをデコードして取得します。


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