%video to imgs
%matlab
clear
video_path = 'E:\04_BIT_Seeker\01_tracker\01_dataset\tracking_video_from_qihe\';
img_files = [video_path 'car1.mp4'];
S = regexp(img_files, '\.', 'split');
img_dir = char(S{1});
mkdir(img_dir);
% fileName = sort({img_files.name});
obj = VideoReader(img_files);
numFrames = obj.NumberOfFrames;% 帧的总数
str = [];
for k = 1 : numFrames% 读取数据
frame = read(obj,k);
str = strcat(num2str(k),'.jpg')
% if(k<10)
% str = strcat('000',str);
% elseif(k<100)
% str = strcat('00',str);
% elseif(k<1000)
% str = strcat('0',str);
% end
% imshow(frame);%显示帧
cd(img_dir)
mkdir('img')
cd ./img
imwrite(frame,str,'jpg');% 保存帧
cd ..
cd ..
end
//imgs to video
//c++
#include<opencv2\opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int main()
{
// 构造一个VideoWriter
VideoWriter video("girl.avi", CV_FOURCC('M', 'J', 'P', 'G'), 25.0, Size(320, 240));
// 从一个文件夹下读取多张jpg图片
String pattern = "D:\\AplusFile\\ComputerVision\\IR-Tracking\\trackingimages\\imagecut\\Girl\\img\\*.jpg";
vector<String> fn;
glob(pattern, fn, false);
size_t count = fn.size();
cout << "开始处理!" << endl;
for (size_t i = 0; i < count; i++)
{
Mat image = imread(fn[i]);
// 这个大小与VideoWriter构造函数中的大小一致。
resize(image, image, Size(320, 240));
printf("%d\n", i);
// 流操作符,把图片传入视频
video << image;
}
cout << "处理完毕!" << endl;
// 处理完之后会在得到一个名为test.avi的视频文件。
}