zoukankan      html  css  js  c++  java
  • python opencv 读取USB摄像头的像素问题

    问题描述

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

    问题分析

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

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

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

    下面是测试代码:

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

      

  • 相关阅读:
    MongoDB的固定集合
    MongoDB的导入导出
    MongoDB的数据备份与恢复
    MongoDB的索引
    MongoDB简单CRUD场景
    MongoDB入门
    NOSQL概念入门
    Java静态代理和动态代理
    a=a+1背后的内存模型和CPU高速缓存
    SpringCloud的学习记录(6)
  • 原文地址:https://www.cnblogs.com/Qing-Bo/p/10560069.html
Copyright © 2011-2022 走看看