我想从我的摄像头采用导入OpenCV的Python代码获取图像。代码如下:Python OpenCV访问摄像头最大分辨率
import sys
sys.path.append("C:\\opencv\\build\\python\\2.7")
import cv2
import cv2.cv as cv
import time
# Set resolution
cap = cv2.VideoCapture(0)
print "Frame default resolution: (" + str(cap.get(cv.CV_CAP_PROP_FRAME_WIDTH)) + "; " + str(cap.get(cv.CV_CAP_PROP_FRAME_HEIGHT)) + ")"
cap.set(cv.CV_CAP_PROP_FRAME_WIDTH, 800)
cap.set(cv.CV_CAP_PROP_FRAME_HEIGHT, 600)
print "Frame resolution set to: (" + str(cap.get(cv.CV_CAP_PROP_FRAME_WIDTH)) + "; " + str(cap.get(cv.CV_CAP_PROP_FRAME_HEIGHT)) + ")"
# Acquire frame
capture = cv.CreateCameraCapture(0)
img = cv.QueryFrame(capture)
的代码工作正常,除了摄像头默认分辨率为640x480,和我的代码似乎可以只设定的分辨率值低于。例如,我可以将图像大小设置为320x240,但我无法将其更改为800x600。我没有出现错误:只是将分辨率设置为默认值(640x480),因为我试图将其设置为更高的值。我使用的相机(没有其他摄像头连接到计算机)是QuickCam V-UBK45:使用Logitech提供的软件,我可以以全分辨率(1280x960)和所有中间照片拍摄照片(例如800x600)。
因此,这些帧大小是从硬件支持的,但我的代码无法访问它们。
有谁知道我能做什么?
在其他应用程序中,相机是否在640x480下捕捉*视频*? – goncalopp
@goncalopp说,让我觉得,他们可能会限制驱动程序中*视频流*(带宽)的分辨率,而他们的应用程序仍然可以在较高分辨率下拍摄*单个*图片。 – berak
您是否知道cv2中的代码,因为不要混合cv和cv2。有任何想法吗? –