最近空の雲の動画を撮ったのですが、雲の動きが遅すぎて視覚的に衝撃的な効果がなかったので、以下の処理を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 倍の速度で再生します。
もちろん、グラフィックス カードがこのフレーム レートをサポートしていることが前提となります。。。