使用Matlab将一组jpeg图像合成为avi视频
2013-11-15 19:14
531 查看
昨天突发奇想,想利用实验室的海康高清监控摄像头拍个“延时摄影”。
于是制定如下方案,将镜头对着实验室窗外,配置IPC每分钟截一张1920x1080的jpeg图片,上传到实验室的FTP,拍摄一天,这样算来可以得到60x24=1440张图片,然后以25fps播放,这样,时长就是57.6秒,不到1分钟记录下窗外的一天。
说干就干,昨天下午架起IPC,测试白天一张jpeg图片大概180KB,一天估计250MB。
不过后来忘关红外了,导致从傍晚到清晨的截图上都是红外灯在玻璃上的反光。。。
到今天中午的时候把图片从ftp取下来,总共拍了20个小时,1244张图片,不到150MB,然后就开始考虑怎么把这些图片转成视频了。
对比了一下,感觉用Matlab最方便,使用videowriter类,先读取jpeg图像数据,然后一帧一帧地写入avi视频文件。
Matlab版本:Version 7.11.0.584 (R2010b) 32-bit (win32) August 16, 2010
运行时间:Elapsed time is 204.364983 seconds
合成后的avi文件为145MB,使用vlc播放正常,编码信息如下:
后来在上传到youku之前使用vlc将avi转码成了mp4(h.264),大小约14MB。
播放效果在这里:http://v.youku.com/v_show/id_XNjM1MDk3MzAw.html
于是制定如下方案,将镜头对着实验室窗外,配置IPC每分钟截一张1920x1080的jpeg图片,上传到实验室的FTP,拍摄一天,这样算来可以得到60x24=1440张图片,然后以25fps播放,这样,时长就是57.6秒,不到1分钟记录下窗外的一天。
说干就干,昨天下午架起IPC,测试白天一张jpeg图片大概180KB,一天估计250MB。
不过后来忘关红外了,导致从傍晚到清晨的截图上都是红外灯在玻璃上的反光。。。
到今天中午的时候把图片从ftp取下来,总共拍了20个小时,1244张图片,不到150MB,然后就开始考虑怎么把这些图片转成视频了。
对比了一下,感觉用Matlab最方便,使用videowriter类,先读取jpeg图像数据,然后一帧一帧地写入avi视频文件。
% http://www.mathworks.cn/cn/help/matlab/ref/videowriterclass.html % Author:chenxupro@gmail.com JpegFilesDirPath = 'D:\JpegFilesDir\'; ImgList = dir([JpegFilesDirPath '*.jpg']); AviFilePath= 'D:\Movie.avi'; AviFileObj = VideoWriter(AviFilePath); AviFileObj.FrameRate = 25; % AviFileObj.Quality = 100; % Open file open(AviFileObj); ConvertFrameNum = length(ImgList); tic; for k = 1 : ConvertFrameNum JpegImg = imread([JpegFilesDirPath ImgList(k).name]); Mov = im2frame(JpegImg); if rem(k, 25) == 0 disp([num2str(k) ' frames processed...']) end writeVideo(AviFileObj, Mov); end; toc; % Close file close(AviFileObj);
Matlab版本:Version 7.11.0.584 (R2010b) 32-bit (win32) August 16, 2010
运行时间:Elapsed time is 204.364983 seconds
合成后的avi文件为145MB,使用vlc播放正常,编码信息如下:
后来在上传到youku之前使用vlc将avi转码成了mp4(h.264),大小约14MB。
播放效果在这里:http://v.youku.com/v_show/id_XNjM1MDk3MzAw.html
相关文章推荐
- matlab读jpeg图像--jpeg toolbox的使用
- 使用matlab对训练样本图像降维,并对测试图像使用变换矩阵降维并重构
- 使用matlab对图像进行傅里叶变换
- 图像解码之一——使用libjpeg解码jpeg图片
- 图像处理(一)——使用matlab放缩图像
- 简述:MATLAB中使用Laplace算子对彩色图像进行边缘检测的方法
- 在Linux控制台下使用libjpeg显示JPEG图像在framebuffer上
- Matlab使用鼠标标注图像位置并返回坐标(标注图像ROI)
- 使用libjpeg处理图像(libjpeg的使用压缩与解压缩jpg格式)
- 使用MATLAB在图像中选择矩形框区域的操作函数即过程
- 给图像加高斯噪声和椒盐噪声(不使用自带函数)matlab实现
- matlab练习程序(图像序列合成视频)
- MATLAB基本的使用方法(图像,矩阵及函数)
- 图像解码之一——使用libjpeg解码jpeg图片
- matlab 使用三个矩阵画三维图像
- Matlab使用函数解析之图像操作
- 使用高斯金字塔和拉普拉斯金字塔重构图像(matlab代码)
- 【Matlab图像处理】学习笔记:cat函数合成RGB 图像
- Matlab使用PCA描绘多光谱图像
- MATLAB GUI ,2,使用MATLAB的函数来实现MATLAB GUI,part 1,图像、按钮和坐标轴