0
点赞
收藏
分享

微信扫一扫

【日常记录】【CSS】css实现汉堡菜单

颜路在路上 03-26 11:00 阅读 2

一、读取摄像机视频

        通常情况下,我们必须用摄像机捕捉实时画面。提供了一个非常简单的界面。让我们从摄像头捕捉一段视频(我使用的是我笔记本电脑内置的网络摄像头) ,将其转换成灰度视频并显示出来。只是一个简单的任务开始。

        要捕获视频,你需要创建一个 VideoCapture 对象。它的参数可以是设备索引或视频文件的名称。设备索引就是指定哪个摄像头的数字。正常情况下,一个摄像头会被连接(就像我的情况一样)。所以我简单地传0(或-1)。你可以通过传递1来选择第二个相机,以此类推。在此之后,你可以逐帧捕获。

import numpy as np  
import cv2 as cv  
  
# 创建一个VideoCapture对象,参数0表示使用计算机的第一个摄像头  
cap = cv.VideoCapture(0)  
  
# 检查摄像头是否成功打开  
if not cap.isOpened():  
    print("无法打开摄像头")  
    exit()  
  
# 无限循环,直到遇到退出条件  
while True:  
    # 逐帧捕获视频  
    # ret是一个布尔值,如果正确读取帧,则ret为True;否则为False  
    # frame是读取到的帧图像  
    ret, frame = cap.read()  
      
    # 检查是否成功读取到帧  
    if not ret:  
        print("无法接收帧(流结束?)。正在退出...")  
        break  
      
    # 将图像从BGR颜色空间转换为灰度颜色空间  
    gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)  
      
    # 显示转换后的灰度图像  
    cv.imshow('frame', gray)  
      
    # 等待键盘输入,参数1表示等待时间为1毫秒  
    # 如果按下'q'键,则退出循环  
    if cv.waitKey(1) == ord('q'):  
        break  
  
# 释放VideoCapture对象,关闭摄像头  
cap.release()  
  
# 销毁所有OpenCV创建的窗口  
cv.destroyAllWindows()

        这段代码实现了一个简单的摄像头视频流捕获和显示程序。它使用OpenCV库来从计算机摄像头捕获视频帧,将每帧图像转换为灰度图像,并在窗口中显示。当按下'q'键时,程序将退出。在退出前,它会释放摄像头资源并销毁所有OpenCV创建的窗口。

二、读取保存的文件视频

        它与从相机捕获相同,只是用视频文件名更改摄像机索引。另外,在显示框架时,请使用适当的时间cv.waitKey()。如果太小,则视频将非常快,而如果太大,则视频将变得很慢(嗯,这就是显示慢动作的方式)。正常情况下25毫秒就可以了,或者使用sleep延时来代替(带验证)。

import numpy as np  
import cv2 as cv  
  
# 使用cv2.VideoCapture方法读取名为'vtest.avi'的视频文件  
cap = cv.VideoCapture('vtest.avi')  
  
# 当视频流处于打开状态时,循环读取视频帧  
while cap.isOpened():  
    # 读取视频帧,ret是读取是否成功的标志,frame是读取到的视频帧  
    ret, frame = cap.read()  
      
    # 如果ret为False,说明没有成功读取到视频帧(可能是视频已播放完毕)  
    # 打印提示信息,并退出循环  
    # 如果正确读取帧,ret为True  
    if not ret:  
        print("无法接收帧(视频结束?)。正在退出...")  
        break  
      
    # 将读取到的视频帧从BGR颜色空间转换为灰度颜色空间  
    gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)  
      
    # 使用cv2.imshow方法显示灰度视频帧,窗口名为'frame'  
    cv.imshow('frame', gray)  
      
    # 等待键盘输入,参数1表示等待时间为1毫秒  
    # 如果按下'q'键,则退出循环  
    if cv.waitKey(1) == ord('q'):  
        break  
  
# 释放VideoCapture对象,关闭视频文件  
cap.release()  
  
# 销毁所有OpenCV创建的窗口  
cv.destroyAllWindows()
举报

相关推荐

0 条评论