我正在使用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();
感谢您的时间和知识。