当前位置 博文首页 > yumoz:MATLAB视频-01视频读写、信息获取

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

    作者:[db:作者] 时间:2021-07-29 18:37

    目录

    一、读取视频

    二、获取视频信号信息

    三、读取视频信号某帧

    ?四、视频的写(存储)

    五、写视频文件

    一、读取视频

    %读取视频文件
    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
    下一篇:没有了