当前位置 博文首页 > yumoz: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 其他也是如此。
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
如图显示:
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);
??
cs