在matlab怎么实现图像序列与视频之间的转换

2025-04-12 07:06:42

1、设置创建一个临时工作文件夹来存储图像序列。命令行键入:workingDir = tempname;mkdir(workingDir)mkdir(workingDir,'images')

2、创建视频阅读器创建一个视频阅读器,用于从文件中读取帧。命令行键入:shuttleVideo = VideoReader('shuttle.avi');

3、创建图像序列循环播放视频,将每一帧都读取为一个名为img的3倍宽数组。将每幅图像写入一个荏半吨蛸名为imgN.jpg的JPEG文件,祈硗樘缎其中N是帧号。命令行键入:ii = 1;while hasFrame(shuttleVideo) img = readFrame(shuttleVideo); filename = [sprintf('%03d',ii) '.jpg']; fullname = fullfile(workingDir,'images',filename); imwrite(img,fullname) % Write out to a JPEG file (img1.jpg, img2.jpg, etc.) ii = ii+1;end

4、查找图像文件名查找图像文件夹中的所有JPEG文件名。将图像名称集转换为单元格数组。命令行键入:imageNames = dir(fullfile(workingDir,'images','*.jpg'));imageNames = {imageNames.name}';

5、使用图像序列创建新视频构造一个视频编写器对象,默认情况下创建一个Motion-JPEG AVI文竭惮蚕斗件。命令行键入:outputVideo = VideoWriter(fullfile(workingDir,'shuttle_out.avi'));outputVideo.FrameRate = shuttleVideo.FrameRate;open(outputVideo)

6、循环遍历图像序列,加载坡庥汩赴每个图像,然后将其写入视频。命令行键入:for ii = 1:length(imageNames) img = imread(fullfile(workingDir,&#泌驾台佐39;images',imageNames{ii})); writeVideo(outputVideo,img)end

7、最终确定视频文件。命令行键入:close(outputVideo)

8、查看最终视频构造读者对象。命令行键入:shuttleAvi = VideoReader(fullfile(workingDir,'shuttle_out.avi'));

9、从视频帧创建一个MATLAB电影结构。命令行键入:ii = 1;while hasFrame(shuttleAvi) mov(ii) = im2frame(readFrame(shuttleAvi)); ii = ii+1;end

10、根据视频的宽度和高度调整当前图形和轴的大小,并查看电影的第一帧。命令行降入:f = 酆璁冻嘌figure;f.Position = [150 150 shuttleAvi.Width shuttleAvi.Height];ax = gca;ax.Units = 'pixels';ax.Position = [0 0 shuttleAvi.Width shuttleAvi.Height];image(mov(1).cdata,'Parent',ax)axis off

11、按“Enter”键。如图1所示。

在matlab怎么实现图像序列与视频之间的转换

12、以视频的帧速率回放电影一次。命令行键入:movie(mov,1,shuttleAvi.FrameRate)

13、按“Enter”键。如图2所示。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢