MATLAB与图像处理(四):将图片序列转化为视频文件,将视频文件转化为图片

一,将图片序列转化为视频文件
[cpp] view plain copy
  1. function video=frames2Video(framesPath,videoName,quality,Compressed,fps,startFrame,endFrame)  
  2. %framesPath :图像序列所在路径,同时要保证图像大小相同  
  3. %videoName:  表示将要创建的视频文件的名字  
  4. %quality:    生成视频的质量 0-100  
  5. %Compressed: 压缩类型, 'Indeo3'(默认), 'Indeo5''Cinepak''MSVC''RLE' or 'None'  
  6. %fps: 帧率  
  7. %startFrame ,endFrame ;表示从哪一帧开始,哪一帧结束  
  8.   
  9. if(exist('videoName','file'))  
  10.     delete videoName.avi  
  11. end  
  12.   
  13. %生成视频的参数设定  
  14. aviobj=avifile(videoName);  %创建一个avi视频文件对象,开始时其为空  
  15. aviobj.Quality=quality;  
  16. aviobj.Fps=fps;  
  17. aviobj.compression=Compressed;  
  18.   
  19. %读入图片  
  20. for i=startFrame:endFrame  
  21.     fileName=sprintf('%08d',i);    %根据文件名而定 我这里文件名是00000001.jpg 00000002.jpg ....  
  22.     frames=imread([framesPath,fileName,'.jpg']);  
  23.     aviobj=addframe(aviobj,uint8(frames));  
  24. end  
  25. aviobj=close(aviobj); % 关闭创建视频  
  26. end  
在command window里输入
[cpp] view plain copy
  1. path='你的文件路径';  
  2. frames2Video(path,'dog',90,'None',5,1,32);  

二,视频文件转化为图片
[cpp] view plain copy
  1. function avi2Frames(path)  
  2. mov=aviread(path);            
  3. framesNum=size(mov,2);                                             
  4.                                                              
  5.  for i=1:framesNum  
  6.   frames=frame2im(mov(i));                                
  7.   str=strcat('a',int2str(i),'.jpg');                           
  8.   imwrite(frames,str);  
  9.   
  10. end  
  11. end  

代码未做优化,可以先预分配空间同时对于很多使用程序健壮的语句没有加进去

你可能感兴趣的:(MATLAB与图像处理(四):将图片序列转化为视频文件,将视频文件转化为图片)