MATLAB视频-01视频读写、信息获取

目录

一、读取视频

二、获取视频信号信息

三、读取视频信号某帧

 四、视频的写(存储)

五、写视频文件

一、读取视频

%读取视频文件
video=VideoReader('E:\SoftwareDesign\matlab\ExerciseCode\test.mp4');
%video=VideoReader('test.mp4');  %注意视频文件目录

二、获取视频信号信息

 1.视频信号总帧数

video = VideoReader('C:\Users\zealo\Desktop\video\sample.mp4');
Frames_Number = video.NumberOfFrames;%获取视频总帧数

 调用格式参考上述代码,video.Duration 其他也是如此。

MATLAB视频-01视频读写、信息获取_第1张图片

三、读取视频信号某帧

read函数读取视频得某帧

read函数格式:

 

video = VideoReader('C:\Users\zealo\Desktop\video\sample.mp4');
frame = read(video,10);%读取视频得第十帧
imshow(frame);%显示这帧图像

 四、视频的写(存储)

imwrite:将图像写入图形文件

imwrite(A,filename,fmt)

A:图像数据

filename:目标图像名字

fmt:生成图片的格式

图像格式有:bmp(1-bit、8-bit和4-bit)、gif(8-bit)、hdf、jpg(或jpeg)(8-bit、12-bit和16-bit)、jp2或jpx、pbm、pcx(8-bit)、gm、png、pnm、ppm、ras、tif(或tiff)、xwd。各种格式支持的图像位数不一样, 比如bmp格式不支持16-bit,而png格式支持, 又如gif只支持8-bit格式。

for k= 1:10

  imwrite(frame,strcat('C:\Users\zealo\Desktop\photo\',num2str(k),'.jpg'),'jpg');

end

解释:循环十次,每次都将图片存放在C:\Users\zealo\Desktop\photo\k.jpg

如图显示:

MATLAB视频-01视频读写、信息获取_第2张图片

strcat:水平串联字符串 ,常用在处理大量数据时。

num2str:将数字转换为字符数组

五、写视频文件

    把视频文件写进文件夹里面。


fileName = 'C:\Users\zealo\Desktop\video\sample.mp4';  
Obj = VideoReader(fileName);%读取视频
out = VideoWriter('out');%写入视频文件,创建视频文件
open(out);%写视频前应该先打开视频

while hasFrame(Obj)
    frame = readFrame(Obj);
    writeVideo(out, frame);%将视频写入文件,将数据写入与out相关的视频文件中
end
close(out);

  

你可能感兴趣的:(MATLAB,视频及图像处理)