MATLAB 视频转图片

 读取指定文件夹内所有式视频,按视频帧顺序保存在对应文件夹

clc;clear;

fileFolder = fullfile('D:\Git\read_video\source');
filename0 = dir(fullfile(fileFolder,'*.avi'));
filename1 = dir(fullfile(fileFolder,'*.MP4'));
filename = [filename0; filename1];

parfor fileIndex = 1:size(filename,1);
    frameFolder = strcat(fileFolder,'\ImageTest',int2str(fileIndex));
    if ~exist(frameFolder,'dir')
        mkdir(frameFolder);
    end
    
    file = strcat(fileFolder,'\',filename(fileIndex).name);
    obj = VideoReader(file);
    numFrames = obj.Duration * obj.FrameRate;
    
    for k = 1:numFrames
        frame = read(obj,k);
        frame = imresize(frame,[512,640],'bilinear');  %调整图像大小
        imwrite(frame,strcat(frameFolder,'\',sprintf('%04d.jpg',k)),'jpg');
    end
end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用MATLAB中的VideoWriter函数将一系列图像换成视频。 首先,您需要将要换的图像存储在一个文件夹中,然后使用MATLAB中的imread函数将它们读取到一个cell数组中。例如: ```matlab imgFolder = 'path/to/image/folder'; imgFiles = dir(fullfile(imgFolder, '*.jpg')); numFrames = length(imgFiles); for i = 1:numFrames img{i} = imread(fullfile(imgFolder, imgFiles(i).name)); end ``` 接下来,使用VideoWriter函数创建一个视频文件并设置其属性,例如帧率、视频格式、视频大小等。例如: ```matlab outputVideo = VideoWriter('output.avi'); outputVideo.FrameRate = 30; outputVideo.Quality = 100; open(outputVideo); ``` 最后,将图像写入视频文件中。例如: ```matlab for i = 1:numFrames writeVideo(outputVideo, img{i}); end ``` 完成后,关闭视频文件: ```matlab close(outputVideo); ``` 完整的代码示例: ```matlab imgFolder = 'path/to/image/folder'; imgFiles = dir(fullfile(imgFolder, '*.jpg')); numFrames = length(imgFiles); for i = 1:numFrames img{i} = imread(fullfile(imgFolder, imgFiles(i).name)); end outputVideo = VideoWriter('output.avi'); outputVideo.FrameRate = 30; outputVideo.Quality = 100; open(outputVideo); for i = 1:numFrames writeVideo(outputVideo, img{i}); end close(outputVideo); ``` 请注意,VideoWriter函数只能在Windows和Linux上使用,不能在macOS上使用。如果您使用macOS,可以尝试使用FFmpeg或其他第三方软件来将图像换为视频

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值