【问题标题】:cv2 resolution of captured picture捕获图片的cv2分辨率
【发布时间】:2018-07-18 18:45:38
【问题描述】:

你好,我有这个简单的代码:

from cv2 import *
import time
# initialize the camera


for x in range (10):
    cam = VideoCapture(0)   # 0 -> index of camera
    s,img = cam.read()
    imwrite(str(x) + ".jpg",img) #save image
    time.sleep(3)
    print(x)
    cam.release()

我想知道两件事: - 我的网络摄像头的默认分辨率高于脚本保存我图片的分辨率? - 是否有任何命令可以检查网络摄像头的最大分辨率(我想将此 res 设置为默认输出)?

【问题讨论】:

    标签: python opencv cv2


    【解决方案1】:

    其实有办法检查网络摄像头的默认分辨率。

    • 首先使用cap = cv2.VideoCapture(0) 启动网络摄像头。
    • 然后使用get() 方法,输入以下内容,在打印wh 时,您将获得网络摄像头的宽度和高度:

      w = cap.get(cv2.CAP_PROP_FRAME_WIDTH)
      h = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)
      

    这是对您的第二个问题的回答。是的,您可以通过使用以下set() 方法选择您选择的宽度和高度来更改网络摄像头的分辨率:

    cap.set(cv2.CAP_PROP_FRAME_WIDTH, width)
    cap.set(cv2.CAP_PROP_FRAME_HEIGHT, height)
    

    即使您更改宽度和高度,相机驱动程序仍会保持纵横比。所以你可能并不总是得到你期望的确切高度/宽度。

    示例:当我将宽度和高度分别设置为 80 时。它没有设置它。而是设置宽度 = 320 和高度 = 180。此外,当我将两者都设置为 800 时,它返回宽度 = 848 和高度 = 480。

    保持纵横比的相机驱动程序。

    【讨论】:

    • 对我没有影响 - 必须使用 cv2.resize :\
    猜你喜欢
    • 2012-12-10
    • 1970-01-01
    • 2018-01-18
    • 1970-01-01
    • 2013-03-28
    • 1970-01-01
    • 2012-12-10
    • 2012-08-28
    • 2020-09-08
    相关资源
    最近更新 更多