opencv视频逐帧转换为图片

#coding=utf-8
import cv2
import os
import os.path as osp

name='big_road'     #唯一变量

video_path='video/'+name+'.mp4'
pic_path='pic/'+name
if not osp.exists(pic_path):
    os.makedirs(pic_path)

vc=cv2.VideoCapture(video_path)#读取视频
if vc.isOpened():
    #第一个返回值:读取视频成功与否;第二个返回值:视频的当前帧,读完后视频会迭代到下一帧,
    rval,frame=vc.read()#下次再调read方法的时候,就可把下一帧读出
else:
    rval=False

count =1
while rval:
    rval,frame=vc.read()
    if rval==False:
        break
    cv2.imwrite(pic_path+'/'+'%06d'%count+'.png',frame)
    #print(count)
    count+=1
    cv2.waitKey(1)
vc.release()
print("all is ok")
rval,frame=vc.read()

第一个返回值:读取视频成功与否
第二个返回值:视频的当前帧,读完后视频会迭代到下一帧,下次再调read方法的时候,就可把下一帧读出

cv2.imwrite(pic_path+'/'+'%06d'%count+'.png',frame)

如果该函数没有写入图片,得看一下路径是否存在。

将视频转换为png格式和jpg格式是不同的
opencv视频逐帧转换为图片_第1张图片
1、大小相差甚远

你可能感兴趣的:(learn,VSR,python)