OpenCV-Python----------学习---------视频处理

1 视频处理

1.1 VideoCapture 类

捕获对象=cv2.VideoCapture("摄像头ID号")
retva1=cv2.VideoCapture.isOpend()
# 如果成功,则返回值retval为True
# 如果不成功,则返回值retval为False
retval=cv2.VideoCapture.open(index)
# index为摄像头ID号
# retval为返回值,当摄像头(或者视频文件)被成功打开时,返回值为True
retval=cv.VideoCapture.open(filename)
# 捕获帧
retval,image=cv2.VideoCapture.read()
# image是返回的捕获到的帧,如果没有帧被捕获,则该值为空。
# retval表示捕获是否成功,如果成功则该值为True,不成功则为False。
# 释放
None=cv2.VideoCapture.release()

捕获摄像头视频

#捕获摄像头视频
cap=cv.VideoCapture(0)
while(cap.isOpened()):
    ret,frame=cap.read()
    cv.imshow('frame',frame)
    c=cv.waitKey(1)
    if c==27: #ESC键
        break
cap.release()
cv.destroyAllWindows()

播放视频文件

cv2.waitKey()
#参数较小,则说明每一帧停留的时间较短,视频播放速度会较快
#参数较大,则说明每一帧停留的时间较长,视频播放速度会较慢
#该参数通常是ms,通常设置为25即可
cap=cv.VideoCapture('out.avi')
while(cap.isOpened()):
    ret,frame=cap.read()
    cv.imshow('frame',frame)
    c=cv.waitKey(25)
    if c==27: #ESC键
        break
cap.release()
cv.detroyAllWindows()

1.2 VideoWriter类

1.2.1 构造函数

<VideoWrite> = cv2.VideoWriter(filename,fourcc,fps,frameSize[,isColor])
# filename指定输出目标视频的存放路径和文件名。
# fourcc表示视频编/解码类型。  使用cv2.VideoWriter_fourcc()来指定视频编码格式。
#          若参数为-1,则程序会弹出一个对话框。
# fps为帧速率
# isColor表示是否为彩色图像
write函数
None=cv2.VideoWriter.write(image)#用于写入下一帧视频
# iamge是要写入的视频帧,通常要求彩色图像的格式为BGR模式
释放
None=cv2.VideoWriter.release()

1.2.2 保存视频

cap=cv.VideoCapture('out.avi')
fourcc=cv.VideoWriter_fourcc('I','4','2','0')
out = cv.VideoWriter('output.avi',fourcc,20,(640,480))
while(cap.isOpened()):
    ret,frame=cap.read()
    if ret==True:
        out.write(frame)
        cv.imshow('frame',frame)
        if cv.waitKey(1)==27:
            break
        else:
            break
cap.release()
out.release()
cv.detroyAllWindows()

2 视频操作基础

cap=cv.VideoCapture('out.avi')
while(cap.isOpened()):
    ret,frame=cap.read()
    frame=cv.Canny(frame,100,200)
    cv.imshow('frame',frame)
    c = cv.waitKey(1)
    if c==27: #ESC键
        break
cap.release()
cv.destroyAllWindows()

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值