闲暇的时候,记录一下自己以前用过的方法,为以后再次使用的时候可以找到。
打开视频方式
方法一:VideoCapture capture("../video.avi");
方法二:VideoCapture capture;
capture.open("../video.avi");
读取视频每一帧方式
方法一:capture.read(frame);
方法二:capture>>frame;
获取视频帧率与总帧数
double rate=capture.get(CV_CAP_PROP_FPS); //获取视频帧率
long totalframenumber = capture.get(CV_CAP_PROP_FRAME_COUNT); //获取视频的总帧数
设置视频的读取位置
// 从地第100帧开始读入
double position=100.0;
capture.set(CV_CAP_PROP_POS_FRAMES,position);
// 从地第100毫秒开始读入
double position=100;
capture.set(CV_CAP_PROP_POS_MSEC,position);
// 视频1/2位置开始读入
double position=0.5;
capture.set(CV_CAP_PROP_POS_AVI_RATIO,position);
文件的存储
文件的存入:
string filename = "input_label.xml";
FileStorage fs(filename, FileStorage::WRITE);
fs << "input" << input_normalized; //标签对应内容
fs << "target" << target_;
fs.release();
文件的读取
cv::FileStorage fs;
fs.open(filename, cv::FileStorage::READ);
cv::Mat input_, target_;
fs["input"] >> input_; //将对应标签的文件存入Mat中
fs["target"] >> target_;
fs.release();