当前目录下有一个待转换的视频sample.wmv,还有一个空目录results。现在利用python的opencv库实现将sample视频转换为图片并保存在results目录下,命名从image1开始
# 1. 导入需要的包和模块
import cv2
import numpy as np
import os
# 2. 读取视频,获取视频的帧率、宽度和高度三个参数
cap = cv2.VideoCapture('sample.wmv')
# isOpened() -> retval
# . @brief Returns true if video capturing has been initialized already.
isOpened = cap.isOpened()
fps = cap.get(cv2.CAP_PROP_FPS) # 帧率<每秒中展示多少张图片>
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) # 获取宽度
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) # 获取高度
# print(fps, width, height)
# 10.0 996 608
# 3. 定义转换函数,当视频打开时进行分解操作并重命名文件保存
def changeToPics():
i = 0
while(isOpened):
i = i + 1
# read([, image]) -> retval, image
# . @brief Grabs, decodes and returns the next video frame.
(flag, frame) = cap.read() # 读取每一张 flag<读取是否成功> frame<内容>
filename = 'image' + str(i) + '.jpg'
if flag == True: #读取成功的话
cv2.imwrite(r'./results' + os.sep + filename,frame,[cv2.IMWRITE_JPEG_QUALITY,100])
#写入文件,1 文件名 2 文件内容 3 质量设置
else:
break
print("convert successfully!!!")
# 4. 调用函数
changeToPics()
运行完results目录下会出现切割好的图片
执行py文件
python3 ./文件名