最近做毕设关于图像处理,设计视频图像的拆分和帧图片的合并。在这里做一下记录。
具体Matlab代码如下:
具体Matlab代码如下:
视频分帧:
clc;
clear;
%% 读取视频
video_file='E:\bishe\bishevideo2.avi';
video=VideoReader(video_file);
frame_number=video.NumberOfFrames;
%% 分离图片
for i=1:frame_number
image_name=strcat('E:\bishe\',num2str(i));
image_name=strcat(image_name,'.jpg');
I=read(video,i); %读出图片
imwrite(I,image_name,'jpg'); %写图片
I=[];
end
合并帧图片:
temp1='C:\Users\Asus\Desktop\Tracking codes\MTT\MTT_Results\Woman\';% 路径名1
temp2='_MTT.png';% 路径名2
WriterObj=VideoWriter('xxx.avi');% xxx.avi表示待合成的视频(不仅限于avi格式)的文件路径
open(WriterObj);
for i=1:n_frames % n_frames表示图像帧的总数
frame=imread(strcat(temp1,num2str(i,'d'),temp2));% 读取图像,放在变量frame中
writeVideo(WriterObj,frame);% 将frame放到变量WriterObj中
end
close(WriterObj);
temp2='_MTT.png';% 路径名2
WriterObj=VideoWriter('xxx.avi');% xxx.avi表示待合成的视频(不仅限于avi格式)的文件路径
open(WriterObj);
for i=1:n_frames % n_frames表示图像帧的总数
frame=imread(strcat(temp1,num2str(i,'d'),temp2));% 读取图像,放在变量frame中
writeVideo(WriterObj,frame);% 将frame放到变量WriterObj中
end
close(WriterObj);