#include "videomanger.h" #include #include #include #include VideoManger::VideoManger(QObject *parent/* = nullptr*/) : QObject(parent), framesPerSecound(25) { } bool VideoManger::makeVideo(/*QList *frames, */QString outputName, int count) { // if(frames->isEmpty()) // return false; if(outputName.isEmpty()){ srand(time(nullptr)); outputName = QString(QString::number(rand() % 200 + 10)); } // counts the size of one frame frameSize = cv::imread(outputName.toStdString() + std::to_string(1) + ".png").size(); // init videoWriter videoWriter = cv::VideoWriter(outputName.toStdString() + "1.avi", cv::VideoWriter::fourcc('M', 'J', 'P', 'G'), framesPerSecound, frameSize, true); // record frames in a video file for(int i = 0; i < count; ++i){ // frame = QImageToCvMat(frames->at(i), CV_8UC3); // cv::imshow("qwe", frame); frame = cv::imread(outputName.toStdString() + std::to_string(i + 1) + ".png"); videoWriter.write(frame); } emit videoSaved(); return true; } // convert QImage to cv;;mat cv::Mat VideoManger::QImageToCvMat(QImage frame, int format) { return cv::Mat(frame.height(), frame.width(), format, const_cast(frame.bits()), frame.bytesPerLine()).clone(); }