有屏幕的地方就有bad apple
那么作為一名工科生,熟練的操♂作馬桶蘿卜(matlab)是一項基本技能
下面開始講解如何用matlab制作別具一格的“矩陣蘋果”~
實驗環境
matlab R2018a
原版bad apple視頻
技術要求
可以即時演算圖形
可以將處理后的每幀圖形合并成新的視頻
先上代碼
%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
下面放上幾張效果圖
在實際繪制的過程中畫面顯示比較卡頓,原因是這里沒有修改圖片分辨率大小,且即時演算消耗了大量時間。
若想擁有絲滑的體驗,可以用第二個腳本(createavi.m)生成一個流暢的視頻