python3 opencv摄像头操作

一,打开摄像头实时视频

import cv2

capture = cv2.VideoCapture(0)

while(True):
    # 获取一帧
    ret, frame = capture.read()
    #显示帧
    cv2.imshow('frame', frame)
    if cv2.waitKey(1) == ord('q'):
        break

cv2.VideoCapture(x)目的是指定视频源,如果获取的帧来自本地的视频文件,则x为视频文件的路径,如果视频源来自摄像头,则参数x:0指的是摄像头的编号。如果你电脑上有两个摄像头的话,访问第2个摄像头就可以传入1。

waitKey(x)的参数x是一个大于0的数,x越小视频播放越流畅,x越大,视频越卡。

当检测到键盘按钮q被按下时,则结束程序。

capture.read()返回2个数据,ret是一个布尔值,表示是否正确获取帧,而frame则是返回的视频帧。

 

二,播放本地视频文件

import cv2
# 播放本地视频
capture = cv2.VideoCapture('1.avi')  #视频源为目录下的“1.avi”文件

while(capture.isOpened()):
    ret, frame = capture.read()
    if ret:
        cv2.imshow('frame', frame)
        if cv2.waitKey(30) == ord('q'):
            break
capture.isOpened():由于视频源是文件的视频文件,所以就有播放结束的时候,capture.isOpened()是个布尔值,当为True时,视频还未播放结束,当为False时,表示视频已经播放结束。

三,录制/保存视频

import cv2
capture = cv2.VideoCapture(0)

# 定义编码方式并创建VideoWriter对象
fourcc = cv2.VideoWriter_fourcc('M','J','P','G')  #确定视频编码格式为 MJPG
outfile = cv2.VideoWriter('output.avi', fourcc, 25, (640, 480))

while(capture.isOpened()):
    ret, frame = capture.read()
    if ret:
        outfile.write(frame)  # 写入文件
        cv2.imshow('frame', frame)
        if cv2.waitKey(1) == ord('q'):
            break
    else:
        break

cv2.VideoWriter()创建视频写入对象,用来录制/保存视频

VideoWriter(....)需要给它传入四个参数:

  • 输出的文件名,如'output.avi'
  • 编码方式FourCC
  • 帧率FPS,决定录取后的视频播放速度,FPS越大,播放速度越快
  • 要保存的分辨率大小
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值