在使用这个之前的问题作为指南进行测试后,我编写了以下程序来检查我的相机设置(Logitech S7500 USB Webcam)。我在Windows 7上使用Python 2.7和OpenCV 2.4.6。
希望您可以使用此代码作为指南,修改相机设置以获得所需的分辨率(或接近该分辨率)(使用OpenCV中的set()
函数)。
如果每个相机设置的值都为0.0,则您可能无法调整相机设置。当我在笔记本电脑的内置网络摄像头上运行此程序时,我遇到了这个问题。
from __future__ import print_function
import sys
import cv2
def main(argv):
cap = cv2.VideoCapture(0)
test = cap.get(cv2.cv.CV_CAP_PROP_POS_MSEC)
ratio = cap.get(cv2.cv.CV_CAP_PROP_POS_AVI_RATIO)
frame_rate = cap.get(cv2.cv.CV_CAP_PROP_FPS)
width = cap.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH)
height = cap.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT)
brightness = cap.get(cv2.cv.CV_CAP_PROP_BRIGHTNESS)
contrast = cap.get(cv2.cv.CV_CAP_PROP_CONTRAST)
saturation = cap.get(cv2.cv.CV_CAP_PROP_SATURATION)
hue = cap.get(cv2.cv.CV_CAP_PROP_HUE)
gain = cap.get(cv2.cv.CV_CAP_PROP_GAIN)
exposure = cap.get(cv2.cv.CV_CAP_PROP_EXPOSURE)
print("Test: ", test)
print("Ratio: ", ratio)
print("Frame Rate: ", frame_rate)
print("Height: ", height)
print("Width: ", width)
print("Brightness: ", brightness)
print("Contrast: ", contrast)
print("Saturation: ", saturation)
print("Hue: ", hue)
print("Gain: ", gain)
print("Exposure: ", exposure)
while True:
ret, img = cap.read()
cv2.imshow("input", img)
key = cv2.waitKey(10)
if key == 27:
break
cv2.destroyAllWindows()
cv2.VideoCapture(0).release()
if __name__ == '__main__':
main(sys.argv)
这里是一个关于此主题的OpenCV问题链接和OpenCV文档