qt使用opencv3设置压缩格式
时间: 2024-01-01 19:03:46 浏览: 86
基于opencv的图像压缩
5星 · 资源好评率100%
在 Qt 中使用 OpenCV 3 设置压缩格式的步骤如下:
1. 首先,需要在 Qt 中添加 OpenCV 库。在 .pro 文件中添加以下语句:
```
INCLUDEPATH += /usr/local/include/opencv
LIBS += /usr/local/lib/libopencv_*.so
```
其中,`/usr/local` 是 OpenCV 库的安装路径,`_*.so` 表示需要链接的 OpenCV 库的名称,这里使用通配符 `_*.so` 表示链接所有的 OpenCV 库。
2. 在 Qt 中使用 OpenCV 的 VideoCapture 类读取视频文件,然后设置压缩格式。以下是示例代码:
```
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
VideoCapture cap("test.mp4");
if (!cap.isOpened()) {
qDebug() << "Error opening video file";
return -1;
}
int codec = CV_FOURCC('H', '2', '6', '4'); // 设置压缩格式为 H264
double fps = cap.get(CAP_PROP_FPS);
int width = cap.get(CAP_PROP_FRAME_WIDTH);
int height = cap.get(CAP_PROP_FRAME_HEIGHT);
VideoWriter writer("output.avi", codec, fps, Size(width, height), true);
Mat frame;
while (cap.read(frame)) {
writer.write(frame);
}
cap.release();
writer.release();
return 0;
}
```
在上述代码中,首先使用 `VideoCapture` 类打开视频文件,然后使用 `CV_FOURCC` 宏定义设置压缩格式为 H264。接着,获取视频的帧率、宽度和高度,然后使用 `VideoWriter` 类创建一个输出视频文件,并设置压缩格式、帧率、宽度和高度。最后,循环读取视频文件中的每一帧图像,并将其写入输出视频文件中。循环结束后,关闭输入和输出视频文件。
注意:不同的压缩格式对应的 `CV_FOURCC` 宏定义可能不同,具体可以参考 OpenCV 官方文档。
阅读全文