opencv-python将视频提取图片

首先需要安装opencv-python包(这个库文件很难装的,搞不好需要fq才能装)

#coding=utf-8
import cv2 as cv
cap =cv.VideoCapture("C:\文件\小丑.mp4")
isOpened = cap.isOpened()  ##判断视频是否打开
print(isOpened)
# begin=169940;
# end=170600

begin=162860;
end=163000

# begin=162700;
# end=162850
cap.set(cv.CAP_PROP_POS_FRAMES,begin)

cap.set(3,1920)
cap.set(4,1080)
fps = cap.get(cv.CAP_PROP_FPS)  ##获取帧率
width = int(cap.get(cv.CAP_PROP_FRAME_WIDTH))   ###获取宽度
height = int(cap.get(cv.CAP_PROP_FRAME_HEIGHT))   ###获取高度
print(fps,width,height)
fps=fps*100;
i=begin
x=cap.get(cv.CAP_PROP_FRAME_COUNT);#获取视频的总帧数.AP_P
print(x);

while isOpened :
    if i ==end:   ###只保存前十张
        break
    else:
        i= i+1

    if i%1000 == 0:
        print(i);
    # print(i);
    (flag,frame)=cap.read()
    # cv.imshow('freame', frame);
    fileName = 'C:\web\pb\pb'+ str(i) +'.jpg'
    # print(fileName)
    if flag == True and i%10==0:#通过取余数确定每隔多少帧取一帧
        cv.imwrite(fileName,frame,[cv.IMWRITE_JPEG_CHROMA_QUALITY,1000])  ##路径 图片 图片质量(0-100)
        # cv.imencode('.jpg', frame,[cv.IMWRITE_JPEG_CHROMA_QUALITY,100])[1].tofile(filenpath);
print("end!")
print(i);

需要注意的是cv.imwrite函数不支持中文,设置中文路径会出现乱码,所以保存的路口名称全为英文字符

猜你喜欢

转载自blog.csdn.net/guozuofeng/article/details/103246198