视频写入器类。 更多...
#include <opencv2/videoio.hpp>
|
| VideoWriter () |
| 默认构造函数。
|
|
| VideoWriter (const String &filename, int apiPreference, int fourcc, double fps, const Size &frameSize, const std::vector< int > ¶ms) |
|
| 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 > ¶ms) |
|
| 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 > ¶ms) |
|
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 > ¶ms) |
|
virtual bool | open (const String &filename, int fourcc, double fps, Size frameSize, bool isColor=true) |
| 初始化或重新初始化视频写入器。
|
|
virtual VideoWriter & | operator<< (const Mat &image) |
| 流运算符,用于写入下一个视频帧。
|
|
virtual VideoWriter & | operator<< (const UMat &image) |
|
virtual void | release () |
| 关闭视频写入器。
|
|
virtual bool | set (int propId, double value) |
| 设置 VideoWriter 中的属性。
|
|
virtual void | write (InputArray image) |
| 写入下一个视频帧。
|
|
|
static int | fourcc (char c1, char c2, char c3, char c4) |
| 将 4 个字符连接成 fourcc 代码。
|
|
◆ VideoWriter() [1/5]
cv::VideoWriter::VideoWriter |
( |
| ) |
|
Python |
---|
| cv.VideoWriter( | | ) -> | <VideoWriter 对象> |
| cv.VideoWriter( | filename, fourcc, fps, frameSize[, isColor] | ) -> | <VideoWriter 对象> |
| cv.VideoWriter( | filename, apiPreference, fourcc, fps, frameSize[, isColor] | ) -> | <VideoWriter 对象> |
| cv.VideoWriter( | filename, fourcc, fps, frameSize, params | ) -> | <VideoWriter 对象> |
| cv.VideoWriter( | filename, apiPreference, fourcc, fps, frameSize, params | ) -> | <VideoWriter 对象> |
默认构造函数。
构造函数/函数初始化视频写入器。
- 在 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 对象> |
| cv.VideoWriter( | filename, fourcc, fps, frameSize[, isColor] | ) -> | <VideoWriter 对象> |
| cv.VideoWriter( | filename, apiPreference, fourcc, fps, frameSize[, isColor] | ) -> | <VideoWriter 对象> |
| cv.VideoWriter( | filename, fourcc, fps, frameSize, params | ) -> | <VideoWriter 对象> |
| cv.VideoWriter( | filename, apiPreference, fourcc, fps, frameSize, params | ) -> | <VideoWriter 对象> |
这是一个重载的成员函数,提供用于方便起见。它与上面的函数的区别仅在于它接受的参数。
- 参数
-
filename | 输出视频文件的名称。 |
fourcc | 用于压缩帧的编解码器 4 个字符代码。例如,VideoWriter::fourcc('P','I','M','1') 是 MPEG-1 编解码器,VideoWriter::fourcc('M','J','P','G') 是运动 JPEG 编解码器等。可在 MSDN 页面或使用四cc 站点的 页面 获取代码列表,以获得更完整的列表)。使用 MP4 容器的 FFMPEG 后端在内部使用其他值作为 fourcc 代码:参见 ObjectType,因此您可能会收到来自 OpenCV 关于 fourcc 代码转换的警告消息。 |
fps | 创建的视频流的帧率。 |
frameSize | 视频帧的大小。 |
isColor | 如果它不为零,则编码器将期望并编码彩色帧,否则它将使用灰度帧。 |
提示
- 对于某些后端,
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 对象> |
| cv.VideoWriter( | filename, fourcc, fps, frameSize[, isColor] | ) -> | <VideoWriter 对象> |
| cv.VideoWriter( | filename, apiPreference, fourcc, fps, frameSize[, isColor] | ) -> | <VideoWriter 对象> |
| cv.VideoWriter( | filename, fourcc, fps, frameSize, params | ) -> | <VideoWriter 对象> |
| cv.VideoWriter( | filename, apiPreference, fourcc, fps, frameSize, params | ) -> | <VideoWriter 对象> |
◆ 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 对象> |
| cv.VideoWriter( | filename, fourcc, fps, frameSize[, isColor] | ) -> | <VideoWriter 对象> |
| cv.VideoWriter( | filename, apiPreference, fourcc, fps, frameSize[, isColor] | ) -> | <VideoWriter 对象> |
| cv.VideoWriter( | filename, fourcc, fps, frameSize, params | ) -> | <VideoWriter 对象> |
| cv.VideoWriter( | filename, apiPreference, fourcc, fps, frameSize, params | ) -> | <VideoWriter 对象> |
这是一个重载的成员函数,提供用于方便起见。它与上面的函数的区别仅在于它接受的参数。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 对象> |
| cv.VideoWriter( | filename, fourcc, fps, frameSize[, isColor] | ) -> | <VideoWriter 对象> |
| cv.VideoWriter( | filename, apiPreference, fourcc, fps, frameSize[, isColor] | ) -> | <VideoWriter 对象> |
| cv.VideoWriter( | filename, fourcc, fps, frameSize, params | ) -> | <VideoWriter 对象> |
| cv.VideoWriter( | filename, apiPreference, fourcc, fps, frameSize, params | ) -> | <VideoWriter 对象> |
这是一个重载的成员函数,提供用于方便起见。它与上面的函数的区别仅在于它接受的参数。
◆ ~VideoWriter()
virtual cv::VideoWriter::~VideoWriter |
( |
| ) |
|
|
virtual |
◆ 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 |
◆ get()
virtual double cv::VideoWriter::get |
( |
int |
propId | ) |
const |
|
virtual |
Python |
---|
| cv.VideoWriter.get( | propId | ) -> | retval |
◆ 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 |
◆ 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 |
◆ operator<<() [1/2]
virtual VideoWriter & cv::VideoWriter::operator<< |
( |
const Mat & |
image | ) |
|
|
virtual |
流运算符,用于写入下一个视频帧。
- 另请参阅
- write
◆ operator<<() [2/2]
这是一个重载的成员函数,提供用于方便起见。它与上面的函数的区别仅在于它接受的参数。
- 另请参阅
- write
◆ release()
virtual void cv::VideoWriter::release |
( |
| ) |
|
|
virtual |
Python |
---|
| cv.VideoWriter.release( | | ) -> | 无 |
◆ set()
virtual bool cv::VideoWriter::set |
( |
int |
propId, |
|
|
double |
value |
|
) |
| |
|
virtual |
Python |
---|
| cv.VideoWriter.set( | propId, value | ) -> | retval |
◆ write()
virtual void cv::VideoWriter::write |
( |
InputArray |
image | ) |
|
|
virtual |
Python |
---|
| cv.VideoWriter.write( | image | ) -> | 无 |
◆ iwriter
Ptr<IVideoWriter> cv::VideoWriter::iwriter |
|
protected |
◆ writer
此类的文档是从以下文件生成的