当前位置:   article > 正文

Matlab图像处理——彩色视频转换成老电影模式_视频滤镜matlab

视频滤镜matlab

在我们的日常生活中,老电影往往能够给我们带来一种复古的感觉,让人感觉到一种怀旧的情感。而现在的科技让我们可以通过一些视频编辑软件来将彩色视频转换成老电影的模式,今天我们就来学习一下如何使用matlab来实现这个效果。

1026fb08585b4448936c264914f9ef81.png

 第一步:读取视频,首先需要将待处理的视频读入matlab中,这可以通过使用VideoReader函数来完成。

第二步:对每一帧图像进行处理,需要对每一帧的图像进行处理,将其转换为老电影模式。主要是通过图像处理技术,使其达到一种怀旧色的效果。怀旧风格滤镜是一种使图像颜色发黄的颜色风格。该滤镜模拟久置的相片发生褪色老化的效果。算法可以用一种点运算来表示,R、G、B分量的点运算映射函数分别如下所示:

1e6d65f6bc17d9a051dbfbfa29714ab4.png

第三步:将原彩色图像转换为旧图像后,我们需要进一步使用imadjust函数来调整图像亮度和对比度,以达到老电影效果。

第四步:将每一帧图像保存为视频,将每一帧处理后的图像保存为新视频。可以使用VideoWriter函数来实现。

完整代码:

  1. clear
  2. clc
  3. % 设置输入和输出视频文件名
  4. inputVideo = 'input.mp4';
  5. outputVideo = 'output.mp4';
  6. % 读取输入视频文件
  7. vIn = VideoReader(inputVideo);
  8. % 提取视频信息
  9. numFrames = vIn.NumFrames;
  10. frameRate = vIn.FrameRate;
  11. % 创建输出视频对象
  12. vOut = VideoWriter(outputVideo, 'MPEG-4');
  13. vOut.FrameRate = frameRate;
  14. open(vOut);
  15. % 循环遍历每一帧
  16. for k = 1:numFrames
  17. % 读取当前帧
  18. frame = read(vIn, k);
  19. [m,n]=size(rgb2gray(frame));
  20. % 将当前帧怀旧色效果
  21. for i=1:m
  22. for j=1:n
  23. grayFrame(i,j,1) = 0.393*frame(i,j,1)+0.769*frame(i,j,2)+0.189*frame(i,j,3);
  24. grayFrame(i,j,2) = 0.349*frame(i,j,1)+0.686*frame(i,j,2)+0.168*frame(i,j,3);
  25. grayFrame(i,j,3) = 0.272*frame(i,j,1)+0.534*frame(i,j,2)+0.131*frame(i,j,3);
  26. end
  27. end
  28. adjust_frame = imadjust(grayFrame,[0.2 0.8],[]);
  29. % 写入灰度化的帧到输出视频
  30. writeVideo(vOut, adjust_frame);
  31. end
  32. % 关闭输出视频对象
  33. close(vOut);

至此,我们已经成功地将彩色视频转换成了老电影模式。希望这篇教程对大家有所帮助。下面一起来看下转换后的效果吧!

4829a226924e46c7bc5fed782f6f77c9.png

最后:

如果你想要进一步了解更多的知识,可以关注下面公众号联系~会不定期发布相关设计内容包括但不限于如下内容:信号处理、通信仿真、算法设计、matlab appdesigner,gui设计、simulink仿真......希望能帮到你!

4896edb4b1b64a60aa341dca632051a5.png

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/257581
推荐阅读
相关标签
  

闽ICP备14008679号