- 语言:python
- 依赖包:python-opencv
- 工具:ffmpeg
将视频处理为每帧图片:
import cv2
import subprocess
video_path='luwin-kickback.mp4'
#指定路径下的视频文件
image_save='./imgs'
#保存的图片路径
cap=cv2.VideoCapture(video_path)
#从路径捕获视频文件
frame_count=cap.get(cv2.CAP_PROP_FRAME_COUNT)
#获取视频总帧数
for i in range(int(frame_count)):#逐帧抓取图片
_,img=cap.read()
#read返回两个参数,第一个为布尔值,表示有没有读取到图片
#第二个参数img表示截取到一帧的图片
img=cv2.cvtColor(img,cv2.cv2.COLOR_BGR2GRAY) #cv2.COLOR_RGB2HSV cv2.COLOR_BGR2GRAY
#将每帧图片存储为灰度图
cv2.imwrite((image_save+'/image{}.jpg').format(i),img)
#将图片以统一命名格式存储在路径下
结果(存储在./imgs下的每帧图片):
使用ffmpeg工具将上面各帧图片合成视频: