由于公司项目需要,这里需要将imshow显示出来的内容输出到avi文件中,做一个记录,以防后面需要的时候方便找到。
这里用的是VideoWriter。
//视频保存地址
QString save_path = save_path_;
save_path.append(".avi");
std::string outputVideoPath = qstr2str_(save_path);
//std::cout<<"save_path:"<<outputVideoPath<<std::endl;
cv::VideoWriter videoWriter;
cv::Size S = cv::Size((int)cameraCfg.camWidth/2,
(int)cameraCfg.camHeight/2);
videoWriter.open(outputVideoPath,CV_FOURCC('M', 'J', 'P', 'G'),30.0,S,true);
while(true)
{
//这部分是显示,其中showImage是你从摄像头或者其他拿过来的数据转换成Mat来显示
cv::imshow(name, showImage);
videoWriter<<showImage;
cv::waitKey(1);
}
这里Size部分,是你显示的宽和高,所以得确定你拿到的宽高,不然会在videoWriter<<showImage这部分出问题,会写不进去。
最初的视频保存地址那部分是QT的,就是你要保存的路径和名字,只填名字的话会保存到执行程序同目录下。所以说,如果大家要使用的话,就是cv::VideoWriter videoWriter;这里开始的。