QImage转为视频
时间: 2023-06-28 08:03:50 浏览: 90
如果你想将QImage序列转换为视频,可以使用OpenCV库。下面是一个简单的示例代码,可以将一组QImage转换为AVI视频:
```cpp
#include <opencv2/opencv.hpp>
#include <QImage>
#include <QVector>
using namespace cv;
void imagesToVideo(const QVector<QImage>& images, const QString& filename)
{
int width = images[0].width();
int height = images[0].height();
Size frameSize(width, height);
VideoWriter videoWriter(filename.toStdString(), VideoWriter::fourcc('M','J','P','G'), 30, frameSize);
if (!videoWriter.isOpened())
{
qDebug() << "Failed to open video file for writing: " << filename;
return;
}
for (int i=0; i<images.size(); i++)
{
QImage image = images[i].convertToFormat(QImage::Format_RGB888).rgbSwapped();
Mat frame(height, width, CV_8UC3, image.bits(), image.bytesPerLine());
videoWriter.write(frame);
}
videoWriter.release();
}
```
使用示例:
```cpp
QVector<QImage> images;
// 加载一些QImage到images中
imagesToVideo(images, "output.avi");
```
这个示例代码中使用的VideoWriter的fourcc参数是'M','J','P','G',这意味着输出的视频是使用MJPEG编码的AVI文件。你也可以尝试其他的编码方式,例如'H','F','Y','U'。