再出后续!多媒体实验之宽幅和选做篇
再出后续!多媒体实验之宽幅和选做篇
软件设备
Visual Studio2022
修改内容
3、设计实现一个视频特效程序,能够将两个(或多个)视频拼接成一个宽幅视频。
4、试将水波纹模拟程序和YUV视频显示程序结合起来,实现在视频中叠加水波纹(选做)。
内容1:宽幅视频
之前的版本中您可以看到我是直接再创建了一个det_image2来存储第二张图片,然后同时显示det_image和det_image2。但是这样的做法似乎不符合内容的要求。再思考了一下,真正的做法应该是构建一个两倍宽的背景图,再将det_image2的宽度设为原来的2倍,然后在放置像素点时,将两张图片的像素都放进去,直接显示det_image2。
构建2倍宽的背景图
设置det_image2的宽度为2倍宽,我们用这个变量来显示,无论用det_image还是det_image2都是一样的:
关键代码如下:
1 | det_image2[288 - i - 1][j].r = r; |
- 显示det_image2的时候宽度也要设置为两倍;
- 效果如下,看起来是一样的,但是原理是一样的:
内容2:选做部分(视频波纹)
原理是这样的:只需要修改渲染函数中的内容即可,实验二中是对bmp图片的像素点进行偏移量的转换,对于视频来说,那么首先yuv转码为rgb的格式,然后对每一帧的rgb值也进行像素点的偏移。所以关键的代码是这样的:
1 | for (int y = 0; y < cyDib - 1; y++) //y就是i,x就是j没问题 |
效果如下:
更多内容可以查看:https://cds007.github.io/
有问题可在评论区交流~
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 CDS007的个人博客!
评论