python与opencv实现从视频或摄像头提取关键帧,

先搭建Anconda+opencv的环境,在来运行代码。环境搭建见下一篇博客。该代码实现隔20帧取一张图片

import cv2
import numpy as np


# 定义保存图片函数
# image:要保存的图片名字
# addr;图片地址与相片名字的前部分
# num: 相片,名字的后缀。int 类型
def save_image(image, addr, num):
    address = addr + str(num) + '.jpg'
    cv2.imwrite(address, image)


# 读取视频文件
videoCapture = cv2.VideoCapture("./data/1.mkv")
# 通过摄像头的方式
# videoCapture=cv2.VideoCapture(1)

# 读帧
success, frame = videoCapture.read()
i = 0
timeF = 20
j = 0
while success:
    i = i + 1
    if (i % timeF == 0):
        j = j + 1
        save_image(frame, './output/image', j)
        print('save image:', i)
    success, frame = videoCapture.read()

你可能感兴趣的:(python,python,opencv,人工智能)