将只有蓝点描点的图,连续起来,变成了可以观看的视频,是一件很有意思的事情,下文用matlab加以实现:
close all
clear all
clc
[y fs] = audioread('E:大杉久美子 - ドラえもんのうた (哆啦A梦之歌) (TV Version).mp3');%音频读取
sound(y,fs);%播放背景音乐
path = 'C:\Users\HP\Desktop\实验文件夹\';%注意文件夹路径的选取,注意该文件夹下需要大量图片,以方便做成动画效果
dir1 = dir([path '*.jpg']);
for i = 1:length(dir1)
disp(i);
img = imread([path dir1(i).name]);
img = rgb2gray(img);
detection = edge(img,'canny');%算子边缘检测,roberts,sobel,log三种算子的效果都不如canny
set(gcf,'NumberTitle','off','Name','test@MATLAB2016a by SZQ');
[x,y] = find(detection ==1);
scatter(y,-x,'.');%描点
axis([0 2048 -1024 0]);
pause(0.05);
end
终结语:
代码参考于UP主 明拓在哪的白蛇视频,在这里表示感谢,源代码参考于https://blog.csdn.net/xiehuo120/article/details/97665779
顺便说一句,如何将一段视频切成每一帧的方法:
建议大家下载 Adobe Premiere Pro CS6软件,文件打开你所要导入的视频,拖入时间轴,ctrl+m,选择导出的格式为jpg即可,如果大家的视频是从B站下载的,建议坐标轴按照我的代码后两行的参数编写。
下面是视频中的截图: