【bad apple】matlab制作矩阵苹果~

有屏幕的地方就有bad apple

那么作为一名工科生,熟练的操♂作马桶萝卜(matlab)是一项基本技能

下面开始讲解如何用matlab制作别具一格的“矩阵苹果”~

  • 实验环境
  1. matlab R2018a
  2. 原版bad apple视频
  • 技术要求
  1. 可以即时演算图形
  2. 可以将处理后的每帧图形合并成新的视频

先上代码

%trans.m
%此脚本用来将bad apple视频每帧图形进行处理,获取轮廓后再绘制出来。
clear;
clc;
se = strel('line',11,90);
obj=VideoReader('bap.mp4');
num=obj.NumberOfFrames;
for i=1:6570
    frame=read(obj,i);
    frame=im2bw(frame);
    lunkuo=bwperim(frame);%此函数用来获取轮廓
    lunkuo=imdilate(lunkuo,se);
    imshow(lunkuo);
    %生成帧图,路径可自由修改
    %若将下面三行注释符号去掉,程序将自动把每帧图片保存到本地,经测试,一共6570帧、381MB
    %lujing=strcat('E:/CODE-MATLAB/lunkuo/',num2str(i));
    %lujing=strcat(lujing,'.jpg');
    %imwrite(lunkuo,lujing)
end
%createavi.m
%此程序是将刚才保存到本地的帧图合称为一个完整的视频
clear;
clc;

WriterObj=VideoWriter('lunkuo.avi', 'Uncompressed AVI');
open(WriterObj);
for i=1:6570
  pic='E:/CODE-MATLAB/lunkuo/';%存放帧图的路径
  pic=strcat(pic,num2str(i));
  ppic=strcat(pic,'.jpg');
  frame=imread(ppic);% 读取图像,放在变量frame中
  disp(ppic);
  writeVideo(WriterObj,frame);% 将frame放到变量WriterObj中
end
close(WriterObj);

好啦~核心代码就以上两个

也可以直接从gayhub下载喔:https://github.com/L0stAngel/mataplle

下面放上几张效果图

【bad apple】matlab制作矩阵苹果~_第1张图片

【bad apple】matlab制作矩阵苹果~_第2张图片

在实际绘制的过程中画面显示比较卡顿,原因是这里没有修改图片分辨率大小,且即时演算消耗了大量时间。

若想拥有丝滑的体验,可以用第二个脚本(createavi.m)生成一个流畅的视频

你可能感兴趣的:(【bad apple】matlab制作矩阵苹果~)