%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);
num s = obj.NumberOf s;% 帧的总数
str = [];
for k = 1 : num s% 读取数据
       = 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( );%显示帧
    cd(img_dir)
    mkdir(\'img\')
    cd ./img
    imwrite( ,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的视频文件。
}

 

收藏 打印