您当前的位置: 首页 >  matlab

slandarer

暂无认证

  • 0浏览

    0关注

    248博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

如何用MATLAB为小姐姐跳舞视频增添另一个小姐姐跳舞进度条

slandarer 发布时间:2021-09-03 12:26:32 ,浏览量:0

注: 本人非常清楚这项任务使用pr会简单很多,此篇文章只是为了探究matlab能干啥的边界。并作为一个熟悉matlab矩阵操作和视频音频操作的例子。

效果如下: (怕侵权就只放个动图)

可以看到小姐姐的舞蹈非常让人上头哈!!!!

在这里插入图片描述 材料准备: 1首先需要准备一个小姐姐的视频: (完整素材包放在文章最后) 在这里插入图片描述 2需要准备一系列小姐姐跳舞的png图片,放在pic文件夹里:

在这里插入图片描述 完整代码: 其实原理很简单,就只是计算图片应该到的位置,把图片放到该放的地方,至于怎么样让声音和视频和在一起可以看这一篇: MATLAB 如何将视频和音频写入同一个文件?以视频上下颠倒为例,附带详细注释

function moveAddWaitBar2
videoPath='test.mp4';
picPath='.\pic\';%图片素材路径

movObj=VideoReader(videoPath);
[AUDIO,Fs]=audioread(videoPath);
audioLen=round(size(AUDIO,1)./movObj.NumFrames);

videoFWriter=vision.VideoFileWriter('result.avi','FrameRate',movObj.FrameRate);
videoFWriter.AudioInputPort=true;

files=dir(fullfile(picPath,'*.png')); %图片格式png
picNum=size(files,1);

% 导入图片素材
for i=1:picNum
   fileName=strcat(picPath,files(i).name); 
   [img,~,alp]=imread(fileName);
   imgSet{i}=img;
   alpSet{i}=alp;
end

close all;
fig=figure(1);
fig.NumberTitle='off';

[m,n,~]=size(read(movObj,1));
for k=1:movObj.NumFrames

     frame=read(movObj,k);
     tImg=imgSet{mod(k-1,picNum)+1};
     tAlp=alpSet{mod(k-1,picNum)+1};
     [M,N,~]=size(tImg);
     
     % 动图定位
     tN=round(k/movObj.NumFrames*n);
     
     tNSet=tN+1-floor(N/2):tN+ceil(N/2);
     if any(tNSet            
关注
打赏
1664692598
查看更多评论
0.0407s