py-opencv学习笔记三 视频和图片的转换

1、视频-》图片:我们可以读取视频的每一帧,然后将这每一帧保存成图像。由于视频会产生很多图片,我们可以用os.mkdir新建一个目录。视频读取失败结束。

import cv2 as cv
import numpy as np
import os
''' 定义一个捕获视频的类'''
cap=cv.VideoCapture("output.avi")
i=0
try :
    '''创建目录,如果output目录存在,则产生一个错误 '''
    os.mkdir("output")
except FileExistsError:
    print(FileExistsError)
cnt=0
while(True):
    '''读取视频,保存成图片 '''
    ret,frame=cap.read()
    if ret==True:
        cv.imwrite("output/"+str(cnt)+".jpg",frame)
        cv.imshow("output",frame)
        cv.waitKey(2)
        cnt+=1
    else:
        break

cv.destroyAllWindows()

2、图片-》视频:我们用vedioWriter将读入的每一张图片写入进视频,跟之前保存摄像头一样。如果有一次读入失败,则假设里面的读片均已读取,然后结束。

import cv2 as cv

'''设置编码方式 '''
fourrc=cv.cv2.VideoWriter_fourcc(*'XVID')
'''写视频的类'''
getvideo=cv.VideoWriter("output1.avi",fourrc,20.0,(640,480))
cnt=0
while(True):
    img=cv.imread('output/'+str(cnt)+'.jpg')
    try:
        img.shape 
    except:
        print('fail to read %d.jpg',cnt)
        break
    cv.imshow("frame",img)
    getvideo.write(img)
    print(cnt)
    cnt=cnt+1

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值