一.视频转图像(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);