zoukankan      html  css  js  c++  java
  • 将图片序列转化为视频文件


    %下面不规范的注释就不用介意了
    %手动选择存有图片的文件夹
    srcDic = uigetdir('C:UsersNEVERGUVEIPDesktop机器学习my_train');
    cd(srcDic);
    %读取图片名字
    allnames = struct2cell(dir('*.jpg'));
    [k,len]=size(allnames);
    aviobj = VideoWriter('driver.avi');%给视频起名字
    aviobj.FrameRate = 5;%设置帧率
    open(aviobj)
    %创作视频
    for i = 1:len
        name = allnames{1,i};
        frame = imread(name);
        writeVideo(aviobj,frame);
    end
    close(aviobj)
    %在你存放图片的路径下就会又视频了,高兴,这么简单呀,哈哈哈






    %这个没有试
    一,将图片序列转化为视频文件
    function video=frames2Video(framesPath,videoName,quality,Compressed,fps,startFrame,endFrame)
    %framesPath :图像序列所在路径,同时要保证图像大小相同
    %videoName:  表示将要创建的视频文件的名字
    %quality:    生成视频的质量 0-100
    %Compressed: 压缩类型, 'Indeo3'(默认), 'Indeo5', 'Cinepak', 'MSVC', 'RLE' or 'None'
    %fps: 帧率
    %startFrame ,endFrame ;表示从哪一帧开始,哪一帧结束
    
    if(exist('videoName','file'))
        delete videoName.avi
    end
    
    %生成视频的参数设定
    aviobj=avifile(videoName);  %创建一个avi视频文件对象,开始时其为空
    aviobj.Quality=quality;
    aviobj.Fps=fps;
    aviobj.compression=Compressed;
    
    %读入图片
    for i=startFrame:endFrame
        fileName=sprintf('%08d',i);    %根据文件名而定 我这里文件名是00000001.jpg 00000002.jpg ....
        frames=imread([framesPath,fileName,'.jpg']);
        aviobj=addframe(aviobj,uint8(frames));
    end
    aviobj=close(aviobj); % 关闭创建视频
    end
    在command window里输入
    path='你的文件路径';
    frames2Video(path,'dog',90,'None',5,1,32);
    二,视频文件转化为图片
    function avi2Frames(path)
    mov=aviread(path);          
    framesNum=size(mov,2);                                           
                                                               
     for i=1:framesNum
      frames=frame2im(mov(i));                              
      str=strcat('a',int2str(i),'.jpg');                         
      imwrite(frames,str);
    
    end
    end
    代码未做优化,可以先预分配空间同时对于很多使用程序健壮的语句没有加进去


  • 相关阅读:
    配置文件中文件重复
    大型网站技术架构02
    2018.12.26-12.30第一周毕设计划
    软件架构模式-分层架构II
    软件架构模式-分层架构
    echarts实现中国地图数据展示
    Python数据分析入门(一)——了解Python下的函数包
    Python学习笔记(二)
    Python学习笔记(一)
    Echarts的简单使用
  • 原文地址:https://www.cnblogs.com/neverguveip/p/9457248.html
Copyright © 2011-2022 走看看