使用opencv库,从摄像机捕获视频并在窗口中显示视频帧

使用opencv库,从摄像机捕获视频并在窗口中显示视频帧

#导入opencv库,用于图像处理和计算机视觉任务。
import cv2

#设置显示视频的显示窗口的宽度和高度(以像素为单位)
dispW=640
dispH=480

#定义了一个flip参数,值为2,决定了摄像头拍摄的图像如何翻转。 值为 2 表示垂直翻转。
flip=2  

#对获取图像分辨率,帧率等进行设置,使用树莓派摄像头
camSet='nvarguscamerasrc !  video/x-raw(memory:NVMM), width=3264, height=2464, format=NV12, framerate=21/1 ! nvvidconv flip-method='+str(flip)+' ! video/x-raw, width='+str(dispW)+', height='+str(dispH)+', format=BGRx ! videoconvert ! video/x-raw, format=BGR ! appsink'
#这一行创建了一个VideoCapture对象,用于访问摄像头和捕捉视频帧。 先前定义的 camSet 字符串作为参数传递给 VideoCapture 构造函数。
cam=cv2.VideoCapture(camSet)

#使用电脑摄像头
#cam=cv2.VideoCapture(1)

while True:
    #ret为True或者False,代表也没有读取到图像;frame表示截取到的一帧的图片
    ret , frame=cam.read()
    #展示窗口
    cv2.imshow('nanoCam',frame)
    #此行检查是否按下了 'q' 键。 如果是,循环将中断,程序将终止
    # waitKey 方法等待键事件指定的毫秒数
    if cv2.waitKey(1) == ord('q'):
        break
#释放相机并释放 VideoCapture 对象使用的所有资源。
cam.release()
#关闭所有 OpenCV 窗口并释放 imshow 方法使用的所有资源。
cv2.destroyAllWindows()

 

posted @ 2023-02-12 15:14  NY_S  阅读(266)  评论(0编辑  收藏  举报