簡單利用opencv製作小視頻-以b站某視頻爲例

(咳咳)代碼之前

清晨,美妙的冷空氣一口口的,昨天下了場大雨,往日可以喫西瓜的溫度瞬間就降下來了。晚上睡覺那怎一個涼涼了得。。

在這裏插入圖片描述

早上起牀是不可能的起牀的,只能靠窩在被子裏看點視頻勉強維持下溫度

出來吧,我的b站!

在這裏插入圖片描述
b站好有趣哦,裏面的人個個都是人才,說話又好聽,視頻又有趣,我超喜歡這裏

在這裏插入圖片描述
看着看着一條彈幕全是‘哈哈哈哈哈’‘哈哈哈哈’‘哈哈哈’的視頻進入了我的世界

在這裏插入圖片描述
視頻鏈接直達:歐美版水滸人物

這樣的視頻怎麼用代碼做出來呢?

有沒有方便快捷,僅需圖片就能製作出來的呢?

有的!有的!他就在這裏!

(噗)代碼:

這種將圖片一張張顯示的幻燈片模式視頻,不到50行代碼就能實現。

1、所需庫

opencv-python

2、實現原理
將每張圖片從右到左一張張移動過去。。。

3、代碼

以下代碼僅需改變將代碼中的各種參數設置爲你自己所需要的就可以運行。

當然還需要有圖片啊喂

其他的就沒什麼需要講解的了,直接上代碼。

# coding=utf-8
import cv2 as cv
import os

folderPath = 'C:/Users/11037/Desktop/test/' #處理圖片的路徑
bgImgPath = 'C:/Users/11037/Desktop/bgtupian.jpg' #背景圖片路徑
savePath = 'C:/Users/11037/Desktop/endvideo.mp4'  #視頻保存路徑
videosize = (400,650) #視頻寬度和高度
fps = 30  #視頻幀率
speed = 2  #視頻移動速度

def main():
	fourcc = cv.VideoWriter_fourcc(*'mp4v')
	piclist = os.listdir(folderPath)
	bgImg = cv.imread(bgImgPath)
	rebgImg = cv.resize(bgImg,videosize)  #將背景圖片改爲視頻大小
	videowriter = cv.VideoWriter(savePath, fourcc, 30, videosize)

	picnum = len(piclist)  #獲取圖片數量

	print('視頻製作開始~')
	for i in range(picnum):
		tmpbg = rebgImg.copy()
		nowpicpath = folderPath + str(piclist[i])
		if i!=picnum-1:
			nextpicpath = folderPath + str(piclist[i+1])
		nowImg = cv.imread(nowpicpath)
		height,weight,c = nowImg.shape
		nowImg = cv.resize(nowImg,(videosize[0],videosize[0]*height//weight))  #將圖片改爲適應視頻的大小,使圖片寬度和視頻寬度一致
		nextImg = cv.imread(nextpicpath)
		height, weight, c = nextImg.shape
		nextImg = cv.resize(nextImg,(videosize[0],videosize[0]*height//weight))  #同上

		midline = videosize[1]//2

		nowh, noww, c1 = nowImg.shape
		nexth,nextw,c2 = nextImg.shape
		t = 0
		while(t<=videosize[0]):
			nowbg = tmpbg.copy()
			nowbg[midline - nowh // 2:midline - nowh // 2 + nowh, 0:videosize[0]-t] = nowImg[:,t:]  #將現在的照片左移
			nowbg[midline - nexth//2:midline - nexth // 2 + nexth,videosize[0]-t:] = nextImg[:,:t] #將下一張照片左移
			t += speed
			videowriter.write(nowbg)
	print('視頻製作成功啦~')
if __name__ == '__main__':
	main()

我用的圖片們:
1、背景圖片:

在這裏插入圖片描述
2、移動圖片們
在這裏插入圖片描述
製作完之後效果預覽
在這裏插入圖片描述
ok啦~ 謝謝觀看~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章