opencv调用摄像头进行拍照、录像

一、调用摄像头进行拍照

import cv2 as cv

cap = cv.VideoCapture(0)
while True:
    success,frame = cap.read()
    cv.imshow('video',frame)
    Key = cv.waitKey(1) & 0xFF
    # cv2.waitKey(1)与0xFF(11111111)进行相与运算,是因为cv2.waitKey(1)的返回值不止8位,
    # 但是只有后8位实际有效,为避免产干扰,通过‘与’操作将其余位设置为0
    if Key == ord(' '):  #按下空格键
        cv.imwrite('photo.jpg',frame)  #保存图片
        break
    
cap.release() #释放占用资源
cv.destroyAllWindows() #释放opencv创建的所有窗口

二、调用摄像头进行录像

import cv2 as cv

cap = cv.VideoCapture(0)
fps = 20
size = (int(cap.get(cv.CAP_PROP_FRAME_WIDTH)),
        int(cap.get(cv.CAP_PROP_FRAME_HEIGHT)))
wri = cv.VideoWriter(
    'video.avi',cv.VideoWriter_fourcc('x','v','i','d'),
    fps,size)
flag = 0
while True:
    success,frame = cap.read()
    cv.imshow('window',frame)
    Key = cv.waitKey(1) & 0xFF
    if Key == ord(' '):
        flag += 1
    if flag == 1: #第一次按下空格开始录像
        wri.write(frame)
    elif flag == 2: #第二次按下空格结束录像
        break
cap.release()
wri.release()
cv.destroyAllWindows()

你可能感兴趣的:(opencv调用摄像头进行拍照、录像)