18 #ifndef OCV_TRACKING_MODEXEC_FRAMEOUTPUT_HPP_
19 #define OCV_TRACKING_MODEXEC_FRAMEOUTPUT_HPP_
21 #include <opencv2/core.hpp>
22 #include <opencv2/imgproc.hpp>
23 #include <opencv2/videoio.hpp>
24 #include <opencv2/videoio/videoio_c.h>
26 #include <unordered_map>
79 const std::string outputVideoDirectory,
const std::string outputVideoName,
80 cv::Size videoSize,
const double fps = 5.f
83 std::string mkdirCmd = std::string(
"mkdir -p " + outputVideoDirectory);
84 if(!system(mkdirCmd.c_str()));
86 mkdirCmd = std::string(
"rm -f " + outputVideoDirectory +
"/*.avi");
87 if(!system(mkdirCmd.c_str()));
89 int codecType = cv::VideoWriter::fourcc(
'X',
'V',
'I',
'D');
90 std::string fullOutputVideoFilename = outputVideoDirectory +
"/" + outputVideoName +
".avi";
95 mOutputVideo =
new cv::VideoWriter(fullOutputVideoFilename, codecType, fps, videoSize,
true);
99 std::cout <<
"[ERROR] failed to open output video: " << fullOutputVideoFilename << std::endl;
117 const std::string outputImageDirectory,
const int compressionLevel = 95,
const uint outputDirectoryKey = 0
120 assert(outputImageDirectory.size() > 0);
122 std::string mkdirCmd = std::string(
"mkdir -p " + outputImageDirectory);
123 if(!system(mkdirCmd.c_str()));
158 const cv::Mat &img,
const std::string imgFilename,
159 const uint outputDirectoryKey = 0,
const std::string subFolderName =
""
162 std::stringstream fullOutFilePath;
166 if(subFolderName.size() > 0)
168 fullOutFilePath <<
"/" << subFolderName;
173 popen(std::string(
"mkdir -p " + fullOutFilePath.str()).c_str(),
"r"), pclose
176 throw std::runtime_error(
"popen() failed!");
179 fullOutFilePath <<
"/" << imgFilename <<
".jpg";
187 std::string message =
"mOutputImageDirectory[" + std::to_string(outputDirectoryKey) +
"] doesn't exist !!";
188 fprintf(stdout,
"~~ CLOG[%s, %s() @line %d]: %s\n", __FILE__, __func__, __LINE__, message.c_str());
200 #endif // OCV_TRACKING_MODEXEC_FRAMEOUTPUT_HPP_