最近这个挺火的,我也来玩一下,直接来看代码,我已经写好了注释
% 读取视频
videoFile = 'input_video.mp4';
v = VideoReader(videoFile);
% 输出视频文件对象
outputVideo = VideoWriter('output_video.avi');
open(outputVideo);
% 逐帧处理
while hasFrame(v)
frame = readFrame(v); % 读取帧
% 转换为灰度图像
grayFrame = rgb2gray(frame);
% 进行边缘检测
edges = edge(grayFrame, 'Canny'); % 使用Canny算法进行边缘检测
% 将二值边缘图像转换为uint8类型
edges_uint8 = uint8(edges * 255); % 将 1 转换为 255,0 保持为 0
% 边缘检测结果显示
imshow(edges_uint8);
title('Edge Detection of Video Frame');
% 将处理后的帧写入视频
writeVideo(outputVideo, edges_uint8); % 保存为灰度视频帧
end
close(outputVideo);
disp('边缘检测视频生成完毕!');
PS:对小白:
1、原视频文件名为 video.mp4,不然读取不到;
2、原视频文件需要存放在当前工作目录,可以通过 pwd
查看当前工作目录。(会使用的随便放指定路径就行)
3、代码输出并没有声音,声音是剪辑效果(需自己剪辑)
这是效果图
感谢支持,如果发视频能带上我的ID就更好了(感谢)