最近产品有了一个天才的想法,做一个影集类似的功能,前面用图片制作影像、合成音频的操作都还挺顺利,但是到了给视频添加特效的时候就遇到了困难。
以前使用Pr或绘声绘影的时候就在想,这些软件背后的代码是什么样的呢?看来这一次我自己也可以亲手体验一番了。
这次主要遇到了两个问题:
- 在图片间插入过场动画 (这一篇将不会讲到这个)
- 在视频开头添加一个半透明的几何图案
图片合成
Google了一大票答案,很容易得出答案,OpenCV提供了addWeighted接口来做图片合成的事情。遂从手机上扒下来两张图来试试。
图一 ( 4032 x 1884 )
图二 ( 1126 x 1122 )
# video.py
import cv2
view1 = cv2.imread('view1.jpg')
view2 = cv2.imread('view2.jpg')
# addWeighted(src1, alpha, src2, beta, gamma, dst=None, dtype=None)
# alpha/beta 对应两张图片的透明度, 0是完全透明 1是完全不透明
view = cv2.addWeighted(view1, 0.7, view2, 0.5, 0)
cv2.imwrite('view.jpg'