在Qt中组合多个图像以使用opencv形成视频

时间:2018-06-13 15:01:13

标签: c++ qt opencv video-capture

我正在使用Qt5.11,opencv和Windows 10.我想录制来自特定相机的视频,我尝试使用opencv但是它没有检测到相机,而Qt可以检测到它。所以我设法用Qt访问摄像机并逐帧拍摄图像并将其传递给cv :: Mat并使用视频wrtier来形成完整的视频文件。问题是生成的视频文件总是0字节,我不知道为什么。请问我的代码可以指导我吗?

//initiate video writer settings
Size frameSize(static_cast<int>(dWidth), static_cast<int>(dHeight));
QString dateTime = QDateTime::currentDateTime().toString("dddd dd MMMM yyyy, hh-mm-ss ");
QString fileNameVideo = "Video_" + dateTime + ".avi";
QDir::setCurrent("Recordings/");
VideoWriter temp_writer(fileNameVideo.toStdString().c_str(), CV_FOURCC('D', 'I', 'V', 'X'), 30, frameSize, true);//DIVX or XVID or MJPG

m_videoWriter = temp_writer;

//passing QImage into cv::Mat continuously
cv::Mat frame(qimg.height(), qimg.width(),CV_8UC3, (void *)(qimg.constBits()), (qimg.bytesPerLine()));
if(!m_videoWriter.isOpened())
qDebug()<<"Failed to write the video";
m_videoWriter.write(frame);

// with the help of a button releasing video writer
m_videoWriter.release();

感谢您的时间和知识。

0 个答案:

没有答案