捕获图片的cv2分辨率

时间:2018-07-18 18:45:39

标签: python opencv cv2

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

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()

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

1 个答案:

答案 0 :(得分: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。

相机驱动程序将保持宽高比。