我正试图从我的摄像头获取图像,使用导入OpenCV的python代码。代码如下: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)拍摄照片。
因此,硬件支持这些帧大小,但我的代码无法访问它们。
有人知道我能做什么吗?