首页 > 其他分享 >openCV打开高清摄像头卡顿的问题

openCV打开高清摄像头卡顿的问题

时间:2024-03-15 22:11:33浏览次数:20  
标签:cap OpenCV CAP cv2 openCV 卡顿 time 摄像头

cv2.VideoCapture(camera_number + cv2.CAP_DSHOW) 是OpenCV在Windows平台下用于指定使用DirectShow作为视频捕获后端的一种方式。这里的 cv2.CAP_DSHOW 是一个常量,表示使用DirectShow(DirectX Show)技术来访问和控制摄像头。
cv2.CAP_DSHOW 参数含义:
当你将 cv2.CAP_DSHOW 与摄像头编号相加时,实际上是告诉OpenCV使用DirectShow框架来打开并操作指定的摄像头设备。
DirectShow是Windows操作系统中用于处理音/视频流的一种API集合,它可以动态构建数据源到渲染器之间的过滤器链,支持多种音频和视频格式,并具有一定的硬件加速能力。
可替换参数及其意义: 在OpenCV中,针对不同的系统和摄像头类型,可以设置不同的视频捕获后端。对于不同平台,VideoCapture构造函数可以接受以下几种类型的捕获器标识符:
cv2.CAP_ANY (默认值): OpenCV会选择系统的默认捕获设备或框架。在Windows上可能优先选择VFW (Video for Windows) 或者 DirectShow。
cv2.CAP_VFW (仅限Windows): 使用Video for Windows API。
cv2.CAP_V4L / cv2.CAP_V4L2 (Linux): 使用Video4Linux (V4L) 或 Video4Linux2 (V4L2) 驱动接口。
cv2.CAP_FIREWIRE (某些Linux发行版): 使用IEEE 1394(火线)接口。
cv2.CAP_DC1394 (某些Linux和Mac OS X): 使用IIDC 1394 DC (Digital Camera) 规范。
cv2.CAP_CMU1394 (某些旧版本的OpenCV,现已弃用): 另一种对1394火线相机的支持。
cv2.CAP_QT / cv2.CAP_GSTREAMER / cv2.CAP_FFMPEG 等: 在特定环境中使用其他捕获框架。
请注意,不是所有平台都支持上述所有选项,实际可用的选项取决于您安装的OpenCV版本以及目标操作系统的支持情况。在尝试使用这些选项前,请确保它们在您的环境下有效且适用。

import time

import numpy as np
import cv2


def video_hd():
    """
    问题:opencv-python 在2k采集模式下,画面卡顿厉害,而且录制成功后出现加速播放的效果,实际时常和录制时长相差太大
    调研:很多摄像头在高分辨率的情况下都不到15帧,以MJPG格式解码能达到30帧。
    :return:
    """
    start = int(time.time())
    cap = cv2.VideoCapture(0,cv2.CAP_DSHOW)

    cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1920) # 设置宽为1920
    cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080) # 设置高为1080
    cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc(*'MJPG')) # 使用设摄像头录制高清视频的时候一定要设置为MJPG,别的格式无法支持高清

    fourcc = cv2.VideoWriter_fourcc(*'MJPG') # 保持的格式
    out = cv2.VideoWriter('{}.avi'.format(str(start)), fourcc, 30.0, (1920, 1080))
    print("按字母 q 结束录制")
    time1 = time.time()
    while cap.isOpened():
        step = int(time.time())

        ret, frame = cap.read()
        if ret == True:
            out.write(frame)
            cv2.imshow('frame', frame)
            if (cv2.waitKey(1) & 0xFF == ord('q')):
                print(f"花费的时间 {time.time() - time1}")
                break
        else:
            break
    # 资源释放,在录制结束后,我们要释放资源:
    # 释放资源
    cap.release()
    out.release()
    cv2.destroyAllWindows()


if __name__ == '__main__':
    video_hd()

标签:cap,OpenCV,CAP,cv2,openCV,卡顿,time,摄像头
From: https://www.cnblogs.com/zililove/p/18076353

相关文章

  • ubuntu server安装机房环境以及摄像头部署
    PS:客户安装环境是ubuntu的16.04.5LTS,一般客户都是centos7左右,所以单独写一篇文章本文所需的账号也是root,切换root账号是su需要所需附件的可以打赏后联系我查看ubuntu的版本传输文件到把文件传到/home/sk下安装node:cd/home/sk/tooltar-xvfnode-v8.11.3-lin......
  • OpenCV 配置 VS 2022并识别人脸框出
    文章目录前言一、什么是OpenCV?二、OpenCV的安装和配置1.OpenCV下载2.安装3.配置环境变量4.vs2022环境配置三、OpenCV识别图片人脸四、总结前言在计算机视觉领域,人脸识别是一项具有挑战性且备受关注的任务。借助于开源的计算机视觉库OpenCV,我们可以轻松实现人脸......
  • OpenCV4.9.0开源计算机视觉库安装概述
    上一篇:OpenCV环境变量参考下一篇:​​​​​​​OpenCV4.9.0配置选项参考引言:OpenCV是一款开源的计算机视觉库,可用于实时的图像处理、图形识别、机器学习等领域。它具有跨平台、高速、易用等特点,并广泛应用于各种领域,如医学、安防、自动驾驶、AR/VR等。本文将简要介绍如何基......
  • 交叉编译之opencv-4.1.1
    编译环境:ubuntu22.04;编译工具CMake一、资料下载   opencv-4.1.1:https://github.com/opencv/opencv/archive/4.1.1.zip opencv_contrib-4.1.1:https://github.com/opencv/opencv_contrib/archive/refs/tags/4.1.1.tar.gz 安装cmakesudoaptinstallcmake-qt-gu......
  • ESP32-Cam 初步使用:网络摄像头示例
    此片意在教会你如何初步使用ESP32-cam阅读本文,你将学会:一.学会安装Arduino二.学会使用相关例程一、Arduino的下载安装及汉化1.下载Arduino(Arduino软件下载官网)2.Arduino的安装3.Arduino的汉化:左上角File-->Preferences(Ctrl+逗号也能进入)-->Settings-->Lang......
  • 喜欢的音乐太多了 占用太多内存让电脑卡顿了怎么办?教你一键压缩 帮你搞定烦恼
    下载了很多音乐,发现真的太占空间了,但是又不舍得删除,该怎么办呢?其实我们可以压缩一下,对于喜欢听歌的小伙伴来说,手机里一定存了很多音乐吧,由于手机的存储空间有限,存的音乐越多,手机可用的空间就越小。为了解决手机里音频文件占用空间过大的问题,我们可以将手机里的音频进行压缩,这样......
  • zsh卡顿的问题
    zsh卡顿的问题笔者已经将zsh配置为默认的shell,但是在某些git仓库启动zsh,总是很卡顿。其原因在于:oh-my-zsh为终端增加了自动跟踪git仓库变化的能力,当检测到当前目录为git所管理时,执行了一系列的操作来获取其变化,并将信息格式化好,显示在终端上。改善措施如下:覆盖oh-my-zsh默认......
  • 基于opencv的手势识别
            当然可以,下面是一个使用OpenCV实现简单手势识别,并在摄像头捕捉的视频中描绘出手部轮廓为线条的示例。该代码会读取摄像头流,然后检测出手部,并用线条描绘出手的轮廓。  首先,你需要安装OpenCV库。如果你还没有安装,可以使用pip来安装:pipinstallopencv-pyt......
  • 【计算机毕业设计源码】基于OpenCV的人脸检测系统
    项目概况基于OpenCV的人脸检测系统可对人脸进行框线检测,利用OpenCV的检测算法对单个或多个人脸实现框线定位。运行环境基于OpenCV的人脸检测系统运行环境如下:Python:≥3.5OpenCV:≥4.0IDE工具:VisualStudioCode技术栈:Python+OpenCV+PyQt5主要功能基于Ope......
  • python使用pillow和opencv生成图片缩略图
    代码如下:fromioimportBytesIOfrompathlibimportPathfromtypingimportAnnotated,Literal,Optional,Tuple,Union#pipinstallpillowopencv-pythonimportcv2#type:ignore[import-untyped]importnumpyasnpfromPILimportImageImageSizeType=Ann......