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

動画書き込みクラス。 詳細...

#include <opencv2/videoio.hpp>

Collaboration diagram for cv::VideoWriter:

公開メンバ関数

 VideoWriter ()
 デフォルトコンストラクタ。
 
 VideoWriter (const String &filename, int apiPreference, int fourcc, double fps, const Size &frameSize, const std::vector< int > &params)
 
 VideoWriter (const String &filename, int apiPreference, int fourcc, double fps, Size frameSize, bool isColor=true)
 
 VideoWriter (const String &filename, int fourcc, double fps, const Size &frameSize, const std::vector< int > &params)
 
 VideoWriter (const String &filename, int fourcc, double fps, Size frameSize, bool isColor=true)
 
virtual ~VideoWriter ()
 デフォルトのデストラクタ。
 
virtual double get (int propId) const
 指定された VideoWriter のプロパティを返す。
 
String getBackendName () const
 使用しているバックエンドAPI名を返す。
 
virtual bool isOpened () const
 ビデオライタが正常に初期化されている場合にtrueを返す。
 
bool open (const String &filename, int apiPreference, int fourcc, double fps, const Size &frameSize, const std::vector< int > &params)
 
bool open (const String &filename, int apiPreference, int fourcc, double fps, Size frameSize, bool isColor=true)
 
bool open (const String &filename, int fourcc, double fps, const Size &frameSize, const std::vector< int > &params)
 
virtual bool open (const String &filename, int fourcc, double fps, Size frameSize, bool isColor=true)
 ビデオライタを初期化または再初期化する。
 
virtual VideoWriteroperator<< (const Mat &image)
 次のビデオフレームを書き込むストリーム演算子。
 
virtual VideoWriteroperator<< (const UMat &image)
 
virtual void release ()
 ビデオライタを閉じる。
 
virtual bool set (int propId, double value)
 VideoWriter にプロパティを設定する。
 
virtual bool write (InputArray image)
 次の動画フレームを書き込む。
 

静的公開メンバ関数

static int fourcc (char c1, char c2, char c3, char c4)
 4文字を連結してfourccコードを生成する。
 

静的限定公開メンバ関数

static Ptr< IVideoWriter > create (const String &filename, int fourcc, double fps, Size frameSize, bool isColor=true)
 

限定公開変数類

Ptr< IVideoWriter > iwriter
 

詳細説明

動画書き込みクラス。

このクラスは、動画ファイルや画像シーケンスを書き込むためのC++ APIを提供する。

samples/cpp/tutorial_code/videoio/video-write/video-write.cppsamples/cpp/videowriter.cpp、および samples/hog_tapi.cpp

構築子と解体子の詳解

◆ VideoWriter() [1/5]

cv::VideoWriter::VideoWriter ( )
Python:
cv.VideoWriter() -> <VideoWriter object>
cv.VideoWriter(filename, fourcc, fps, frameSize[, isColor]) -> <VideoWriter object>
cv.VideoWriter(filename, apiPreference, fourcc, fps, frameSize[, isColor]) -> <VideoWriter object>
cv.VideoWriter(filename, fourcc, fps, frameSize, params) -> <VideoWriter object>
cv.VideoWriter(filename, apiPreference, fourcc, fps, frameSize, params) -> <VideoWriter object>

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

コンストラクタ/関数は動画ライタを初期化する。

  • Linuxでは動画の書き込みにFFMPEGが使われる。
  • WindowsではFFMPEG、MSWF、またはDSHOWが使われる。
  • MacOSXではAVFoundationが使われる。

◆ VideoWriter() [2/5]

cv::VideoWriter::VideoWriter ( const String & filename,
int fourcc,
double fps,
Size frameSize,
bool isColor = true )
Python:
cv.VideoWriter() -> <VideoWriter object>
cv.VideoWriter(filename, fourcc, fps, frameSize[, isColor]) -> <VideoWriter object>
cv.VideoWriter(filename, apiPreference, fourcc, fps, frameSize[, isColor]) -> <VideoWriter object>
cv.VideoWriter(filename, fourcc, fps, frameSize, params) -> <VideoWriter object>
cv.VideoWriter(filename, apiPreference, fourcc, fps, frameSize, params) -> <VideoWriter object>

これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。

引数
filename出力ビデオファイルの名前。
fourccフレームの圧縮に使用するコーデックの4文字コード。例えば VideoWriter::fourcc('P','I','M','1') はMPEG-1コーデック、VideoWriter::fourcc('M','J','P','G') はmotion-jpegコーデックなどである。コードの一覧は MSDN のページ、またはより完全な一覧についてはfourccサイトの このページ で取得できる。MP4コンテナを使用するFFMPEGバックエンドは、fourccコードとしてネイティブに別の値を使用する。ObjectType を参照のこと。そのため、fourccコードの変換についてOpenCVから警告メッセージを受け取ることがある。
fps作成されるビデオストリームのフレームレート。
frameSizeビデオフレームのサイズ。
isColor0以外の場合、エンコーダはカラーフレームを期待してエンコードし、それ以外の場合はグレースケールフレームを扱う。

ヒント:

  • 一部のバックエンドでは、fourcc=-1を指定するとシステムのコーデック選択ダイアログが表示される。
  • 画像シーケンスを保存するには、適切なファイル名(例: img_%02d.jpg)とfourcc=0またはfps=0を使う。生のフレームを保存するには非圧縮の画像フォーマット(例: img_%02d.BMP)を使う。
  • ほとんどのコーデックは非可逆である。可逆な動画ファイルが必要な場合は、可逆コーデック(例: FFMPEG FFV1、Huffman HFYU、Lagarith LAGS など)を使う必要がある。
  • FFMPEGが有効な場合、codec=0; fps=0;を使うと非圧縮(生)の動画ファイルを作成できる。
  • FFMPEGを使う場合、幅または高さが奇数のフレームも許可されるが、この場合は一番右の列または一番下の行を切り捨てる。本来はもっとスマートに処理すべきだが、FFMPEG内部のswscaleの一部の関数は偶数の幅/高さを必要とする。

◆ VideoWriter() [3/5]

cv::VideoWriter::VideoWriter ( const String & filename,
int apiPreference,
int fourcc,
double fps,
Size frameSize,
bool isColor = true )
Python:
cv.VideoWriter() -> <VideoWriter object>
cv.VideoWriter(filename, fourcc, fps, frameSize[, isColor]) -> <VideoWriter object>
cv.VideoWriter(filename, apiPreference, fourcc, fps, frameSize[, isColor]) -> <VideoWriter object>
cv.VideoWriter(filename, fourcc, fps, frameSize, params) -> <VideoWriter object>
cv.VideoWriter(filename, apiPreference, fourcc, fps, frameSize, params) -> <VideoWriter object>

これは利便性のために提供されているオーバーロードされたメンバ関数である。受け付ける引数のみが上記の関数と異なる。apiPreference引数を使うと、利用するAPIバックエンドを指定できる。複数のリーダ実装が利用可能な場合に特定の実装を強制するために使える。例: cv::CAP_FFMPEGcv::CAP_GSTREAMER

◆ VideoWriter() [4/5]

cv::VideoWriter::VideoWriter ( const String & filename,
int fourcc,
double fps,
const Size & frameSize,
const std::vector< int > & params )
Python:
cv.VideoWriter() -> <VideoWriter object>
cv.VideoWriter(filename, fourcc, fps, frameSize[, isColor]) -> <VideoWriter object>
cv.VideoWriter(filename, apiPreference, fourcc, fps, frameSize[, isColor]) -> <VideoWriter object>
cv.VideoWriter(filename, fourcc, fps, frameSize, params) -> <VideoWriter object>
cv.VideoWriter(filename, apiPreference, fourcc, fps, frameSize, params) -> <VideoWriter object>

これは利便性のために提供されているオーバーロードされたメンバ関数である。受け付ける引数のみが上記の関数と異なる。params引数を使うと、(paramId_1, paramValue_1, paramId_2, paramValue_2, ...) のペアとしてエンコードされた追加のエンコーダ引数を指定できる。cv::VideoWriterPropertiesを参照。

◆ VideoWriter() [5/5]

cv::VideoWriter::VideoWriter ( const String & filename,
int apiPreference,
int fourcc,
double fps,
const Size & frameSize,
const std::vector< int > & params )
Python:
cv.VideoWriter() -> <VideoWriter object>
cv.VideoWriter(filename, fourcc, fps, frameSize[, isColor]) -> <VideoWriter object>
cv.VideoWriter(filename, apiPreference, fourcc, fps, frameSize[, isColor]) -> <VideoWriter object>
cv.VideoWriter(filename, fourcc, fps, frameSize, params) -> <VideoWriter object>
cv.VideoWriter(filename, apiPreference, fourcc, fps, frameSize, params) -> <VideoWriter object>

これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。

◆ ~VideoWriter()

virtual cv::VideoWriter::~VideoWriter ( )
virtual

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

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

メンバ関数詳解

◆ create()

static Ptr< IVideoWriter > cv::VideoWriter::create ( const String & filename,
int fourcc,
double fps,
Size frameSize,
bool isColor = true )
staticprotected

◆ fourcc()

static int cv::VideoWriter::fourcc ( char c1,
char c2,
char c3,
char c4 )
static
Python:
cv.VideoWriter.fourcc(c1, c2, c3, c4) -> retval
cv.VideoWriter_fourcc(c1, c2, c3, c4) -> retval

4文字を連結してfourccコードを生成する。

戻り値
fourccコード

この静的メソッドは、コンストラクタVideoWriter::VideoWriterまたはVideoWriter::openで使用するコーデックのfourccコードを構築する。

◆ get()

virtual double cv::VideoWriter::get ( int propId) const
virtual
Python:
cv.VideoWriter.get(propId) -> retval

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

引数
propIdcv::VideoWriterProperties(例:cv::VIDEOWRITER_PROP_QUALITY)からのプロパティ識別子、または ビデオI/O APIバックエンド向けの追加フラグ のいずれか
戻り値
指定したプロパティの値。VideoWriterインスタンスで使われているバックエンドがサポートしていないプロパティを問い合わせた場合は、値0が返される。

◆ getBackendName()

String cv::VideoWriter::getBackendName ( ) const
Python:
cv.VideoWriter.getBackendName() -> retval

使用しているバックエンドAPI名を返す。

覚え書き
ストリームが開いている必要がある。

◆ isOpened()

virtual bool cv::VideoWriter::isOpened ( ) const
virtual
Python:
cv.VideoWriter.isOpened() -> retval

動画ライタが正常に初期化されている場合はtrueを返す。

samples/cpp/tutorial_code/videoio/video-write/video-write.cpp、および samples/hog_tapi.cpp

◆ open() [1/4]

bool cv::VideoWriter::open ( const String & filename,
int apiPreference,
int fourcc,
double fps,
const Size & frameSize,
const std::vector< int > & params )
Python:
cv.VideoWriter.open(filename, fourcc, fps, frameSize[, isColor]) -> retval
cv.VideoWriter.open(filename, apiPreference, fourcc, fps, frameSize[, isColor]) -> retval
cv.VideoWriter.open(filename, fourcc, fps, frameSize, params) -> retval
cv.VideoWriter.open(filename, apiPreference, fourcc, fps, frameSize, params) -> retval

これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。

◆ open() [2/4]

bool cv::VideoWriter::open ( const String & filename,
int apiPreference,
int fourcc,
double fps,
Size frameSize,
bool isColor = true )
Python:
cv.VideoWriter.open(filename, fourcc, fps, frameSize[, isColor]) -> retval
cv.VideoWriter.open(filename, apiPreference, fourcc, fps, frameSize[, isColor]) -> retval
cv.VideoWriter.open(filename, fourcc, fps, frameSize, params) -> retval
cv.VideoWriter.open(filename, apiPreference, fourcc, fps, frameSize, params) -> retval

これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。

◆ open() [3/4]

bool cv::VideoWriter::open ( const String & filename,
int fourcc,
double fps,
const Size & frameSize,
const std::vector< int > & params )
Python:
cv.VideoWriter.open(filename, fourcc, fps, frameSize[, isColor]) -> retval
cv.VideoWriter.open(filename, apiPreference, fourcc, fps, frameSize[, isColor]) -> retval
cv.VideoWriter.open(filename, fourcc, fps, frameSize, params) -> retval
cv.VideoWriter.open(filename, apiPreference, fourcc, fps, frameSize, params) -> retval

これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。

◆ open() [4/4]

virtual bool cv::VideoWriter::open ( const String & filename,
int fourcc,
double fps,
Size frameSize,
bool isColor = true )
virtual
Python:
cv.VideoWriter.open(filename, fourcc, fps, frameSize[, isColor]) -> retval
cv.VideoWriter.open(filename, apiPreference, fourcc, fps, frameSize[, isColor]) -> retval
cv.VideoWriter.open(filename, fourcc, fps, frameSize, params) -> retval
cv.VideoWriter.open(filename, apiPreference, fourcc, fps, frameSize, params) -> retval

動画ライタを初期化または再初期化する。

このメソッドは動画ライタを開く。引数はコンストラクタVideoWriter::VideoWriterと同じである。

戻り値
動画ライタが正常に初期化されている場合はtrue

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

samples/cpp/tutorial_code/videoio/video-write/video-write.cpp、および samples/hog_tapi.cpp

◆ operator<<() [1/2]

virtual VideoWriter & cv::VideoWriter::operator<< ( const Mat & image)
virtual

次の動画フレームを書き込むストリーム演算子。

参照
write

◆ operator<<() [2/2]

virtual VideoWriter & cv::VideoWriter::operator<< ( const UMat & image)
virtual

これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。

参照
write

◆ release()

virtual void cv::VideoWriter::release ( )
virtual
Python:
cv.VideoWriter.release() -> None

動画ライタを閉じる。

このメソッドは、後続のVideoWriter::openVideoWriterのデストラクタによって自動的に呼び出される。

◆ set()

virtual bool cv::VideoWriter::set ( int propId,
double value )
virtual
Python:
cv.VideoWriter.set(propId, value) -> retval

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

引数
propIdcv::VideoWriterProperties(例:cv::VIDEOWRITER_PROP_QUALITY)からのプロパティ識別子、または ビデオI/O APIバックエンド向けの追加フラグ のいずれか
valueプロパティの値。
戻り値
VideoWriterインスタンスで使われているバックエンドがそのプロパティをサポートしている場合はtrue

◆ write()

virtual bool cv::VideoWriter::write ( InputArray image)
virtual
Python:
cv.VideoWriter.write(image) -> retval

次の動画フレームを書き込む。

引数
image書き込むフレーム。一般に、カラー画像はBGR形式が期待される。

この関数/メソッドは、指定した画像を動画ファイルに書き込む。画像は動画ライタを開いたときに指定したものと同じサイズでなければならない。

戻り値
フレームが基盤となるバックエンドによって正常に書き込まれた場合は true、そうでない場合 (例えば、ストリーミング時のネットワークエラー、エンコーダの失敗、サポートされない入力フレームなど) は false。ネイティブAPIからフレームごとのステータスを取得できないバックエンドは、ベストエフォートでの成功時に true を報告する。

メンバ変数詳解

◆ iwriter

Ptr<IVideoWriter> cv::VideoWriter::iwriter
protected

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