《LearnPython-Python学习笔记》-pythonopencv读取USB摄像头的像素问题

admin 2025-11-07 01:09:35 编程 来源:ZONE.CI 全球网 0 阅读模式
  • 问题描述
  • 问题分析
  • 解决办法:人为set指定capture图像的大小

    问题描述

    每次调用capture读取video的时候,还回的像素都是640x480,不管是笔记本的摄像头还是USB摄像头,明明我的摄像头是支持130万读取的功能的呀。

    问题分析

    一番查找,关于用opencv 设置摄像头读分辨率问题的若干说明,果然是capture的默认设置问题,默认将图像尺寸设置为640x480大小,或者说,USB摄像头就不支持capture类的get方法,搞一个默认值糊弄你。

    解决办法:人为set指定capture图像的大小

    1. 利用相机说明书,得到真实的分辨率
    2. 首先set很大的像素(比如:5000x5000),继续read()得到frame,分析实际frame的大小shape,即为该相机支持的最大分辨率

    下面是测试代码:

    1. import cv2
    2. videoCaputer = cv2.VideoCapture(0)
    3. size = (int(videoCaputer.get(cv2.CAP_PROP_FRAME_HEIGHT)), int(videoCaputer.get(cv2.CAP_PROP_FRAME_WIDTH)))
    4. print(size) #错误结果(480,640)
    5. # 只要set下,貌似size就发生了变化
    6. videoCaputer.set(cv2.CAP_PROP_FRAME_WIDTH,5000)
    7. videoCaputer.set(cv2.CAP_PROP_FRAME_HEIGHT,5000)
    8. size = (int(videoCaputer.get(cv2.CAP_PROP_FRAME_HEIGHT)), int(videoCaputer.get(cv2.CAP_PROP_FRAME_WIDTH)))
    9. _,frame = videoCaputer.read()
    10. print(size) # 正确结果(1024,1280)
    11. print(frame.shape)# 正确结果(1024,1280, 3)

    refhttps://www.cnblogs.com/Qing-Bo/p/10560069.html

    以太坊cppgolang区别 编程

    以太坊cppgolang区别

    以太坊是一种去中心化的开源平台,它采用智能合约技术,旨在构建和运行不受干扰的分布式应用程序。作为目前最受欢迎的区块链平台之一,以太坊提供了多种编程语言的支持,其
    progolang 编程

    progolang

    Go语言(Golang)是由Google开发的一门静态类型编程语言。作为一名专业的Golang开发者,我深知这门语言的优势和特点。在本文中,我将介绍Golang
    golangn个发送者 编程

    golangn个发送者

    Golang是一种开源的编程语言,由Google团队开发,旨在提高程序的并发性和简化软件开发过程。在Go语言中,有时需要向多个接收者发送信息。本文将介绍如何在G
    golang技能图谱 编程

    golang技能图谱

    从互联网行业的快速发展到人工智能技术的日益成熟,各种编程语言也应运而生。而在这众多的编程语言中,Golang(即Go)作为一门强大且高效的开发语言备受关注。Go
    评论:0   参与:  0