matlabを使用して高速動画(N倍速)再生処理を実現

最近空の雲の動画を撮ったのですが、雲の動きが遅すぎて視覚的に衝撃的な効果がなかったので、以下の処理をMATLABでやってみようと思いついたのですが、本当に実現しました(笑)。

まず、独自の小さなビデオを用意する必要があります。私が使用するビデオはアップロードしません。テストしたい場合は、携帯電話でビデオを撮ってください。

clc;clear;
close all;

obj = VideoReader('E:\Program\testpro\testfile.mp4');    % 获取句柄
% FrameVideo = obj.FrameRate;                              % 获取帧率及权重,可以不读
% Hight_video = obj.Height;
Framedata = read(obj);                                   % 读取视频
Datasize = size(Framedata);                              % 获得视频矩阵尺寸

Framedata1 = Framedata(:,:,:,1);                         % 获取第一帧图像
imshow(Framedata1);                                      % 查看第一帧图像
myv = VideoWriter('myvideo');                            % 创建句柄
myv.FrameRate = 30;                                      % 设置视频帧率
open(myv);                                               % 打开句柄
writeVideo(myv,Framedata(:,:,:,1:2:end));                % 写入视频,每两张抽取一张实现快进效果
close(myv);                                              % 关闭句柄,然后用视频软件就可以查看视频了

動画の高速再生には一般に 2 つの方法があり、1 つはサンプリング、つまり元の 400 フレームの画像を途中から 100 フレームに抽出して 4 倍の再生速度を実現する方法と、もう 1 つはフレーム レートを上げる方法です。当初は 1 秒あたり 30 フレームで再生していましたが、現在は 60 フレームで再生し、2 倍の速度で再生します。

もちろん、グラフィックス カードがこのフレーム レートをサポートしていることが前提となります。

おすすめ

転載: blog.csdn.net/ruredfive/article/details/120261268