一.视频转图像(avi2img)
1.1 读取视频文件
1.2 获取视频总的帧数
1.3 若每一帧为彩色图片,转换为灰度图(可有可无)
1.4 存到指定地点
%将视频转换为单张图片 clear clc file_name = '.\input.avi'; %视频所在文件夹 obj = VideoReader(file_name); %读取视频文件 numFrames = obj.NumberOfFrames; %视频总的帧数 for k = 1: numFrames frame = read(obj,k); %imshow(frame); gray_frame = rgb2gray(frame); %若每一帧为彩色图片,转换为灰度图 %imshow(frame); %显示每一帧图片 %保存每一帧图片 imwrite(gray_frame,strcat('.\img\',num2str(k),'.jpg'),'jpg'); end
二.图像合成视频(img2avi)
2.1 读取所有jpg文件
2.2 获取图片总数
2.3 命名所转换成的视频名称 2.4 记录视频帧数 2.5 将单张图片存在avi文件
%将所有单帧图片转换为视频 DIR='D:\campus\'; %图片所在文件夹 file=dir(strcat(DIR,'*.jpg')); %读取所有jpg文件 filenum=size(file,1); %图片总数 obj_gray = VideoWriter('highway_gray.avi'); %所转换成的视频名称 writerFrames = filenum; %视频帧数 %将单张图片存在avi文件 open(obj_gray); for k = 1: writerFrames fname = strcat(DIR, num2str(k), '.jpg'); frame = imread(fname); writeVideo(obj_gray, frame); end close(obj_gray);