捕获图片的cv2分辨率
cv2 resolution of captured picture
你好,我有这个简单的代码:
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()
我想知道两件事:
- 我的网络摄像头的默认分辨率高于脚本保存图片的分辨率?
- 是否有任何命令可以检查网络摄像头的最大分辨率(我想将此分辨率设置为默认输出)?
实际上有一种方法可以检查网络摄像头的默认分辨率。
- 首先使用
cap = cv2.VideoCapture(0)
启动网络摄像头。
然后使用get()
方法,输入以下内容,在打印w
和h
时,您将获得网络摄像头的宽度和高度:
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)
即使您更改宽度和高度,相机驱动程序也会保持纵横比。因此,您可能并不总能得到您期望的 height/width。
示例:当我将宽度和高度分别设置为 80 时。它没有设置它。它宁愿设置宽度 = 320 和高度 = 180。此外,当我将两者都设置为 800 时,它返回宽度 = 848 和高度 = 480。
保持宽高比的相机驱动程序。
你好,我有这个简单的代码:
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()
我想知道两件事: - 我的网络摄像头的默认分辨率高于脚本保存图片的分辨率? - 是否有任何命令可以检查网络摄像头的最大分辨率(我想将此分辨率设置为默认输出)?
实际上有一种方法可以检查网络摄像头的默认分辨率。
- 首先使用
cap = cv2.VideoCapture(0)
启动网络摄像头。 然后使用
get()
方法,输入以下内容,在打印w
和h
时,您将获得网络摄像头的宽度和高度: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)
即使您更改宽度和高度,相机驱动程序也会保持纵横比。因此,您可能并不总能得到您期望的 height/width。
示例:当我将宽度和高度分别设置为 80 时。它没有设置它。它宁愿设置宽度 = 320 和高度 = 180。此外,当我将两者都设置为 800 时,它返回宽度 = 848 和高度 = 480。
保持宽高比的相机驱动程序。