CV_FOURCC在opencv4.6变成啥了
时间: 2023-11-09 19:35:33 浏览: 50
CV_FOURCC 是 OpenCV 中用于指定视频编解码器的常量之一。在 OpenCV 4.6 版本中,CV_FOURCC 常量被重命名为 cv::VideoWriter::fourcc。
因此,如果您的代码中使用了 CV_FOURCC 常量,您需要将其替换为 cv::VideoWriter::fourcc。例如,如果您的代码中有以下语句:
```
int fourcc = CV_FOURCC('M', 'J', 'P', 'G');
```
您需要将其修改为:
```
int fourcc = cv::VideoWriter::fourcc('M', 'J', 'P', 'G');
```
这样就可以在 OpenCV 4.6 版本中使用该代码了。
相关问题
int codec = CV_FOURCC('P', 'I', 'M', '1');优化成在opencv4.6能用的
在 OpenCV 4.6 中,`CV_FOURCC` 已经被弃用,取而代之的是 `cv::VideoWriter::fourcc`。它是一个 `cv::VideoWriter` 类的静态成员函数,用于创建一个 FourCC 编码器。您可以使用以下代码将 `'P', 'I', 'M', '1'` 转换为 FourCC 编码:
```
int codec = cv::VideoWriter::fourcc('P', 'I', 'M', '1');
```
这将创建一个 FourCC 编码器,该编码器可以将视频编码为 `'P', 'I', 'M', '1'` 格式。您可以将该编码器传递给 `cv::VideoWriter` 对象,并使用 `write` 函数将帧写入视频文件:
```
cv::VideoWriter writer("output.avi", codec, fps, size);
writer.write(frame);
```
这将创建一个名为“output.avi”的视频文件,并使用指定的 FourCC 编码器、帧率和帧大小创建一个 `cv::VideoWriter` 对象。然后,使用 `write` 函数将帧写入视频文件。
zbar_fourcc 和 v4l2_fourcc的关系
zbar_fourcc 和 v4l2_fourcc 都是用于表示视频帧格式的四字符代码。zbar_fourcc 是 ZBar 库中定义的一种格式,v4l2_fourcc 是 V4L2(Video for Linux 2)中定义的一种格式。它们之间并没有直接的关系,但是它们都可以用于表示相同的视频帧格式,例如 MJPEG(Motion JPEG)格式可以用以下两种方式表示:
- zbar_fourcc: MJPG
- v4l2_fourcc: V4L2_PIX_FMT_MJPEG
因此,在不同的编程环境中,可以根据需要选择使用不同的四字符代码来表示视频帧格式。