Ich versuche, Bilder von meiner Webcam mit einem Python-Code zu erwerben, der OpenCV importiert. Der Code ist der folgende:Python OpenCV Access Webcam maximale Auflösung
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)
Der Code funktioniert gut, außer dass die Kamera Standardauflösung 640x480, und mein Code scheint in der Lage zu sein, nur Auflösung, um Werte niedriger. Zum Beispiel kann ich die Bildgröße auf 320x240 einstellen, aber ich kann es nicht auf 800x600 ändern. Ich habe keinen Fehler angezeigt: einfach die Auflösung wird auf den Standardwert (640x480) gesetzt, während ich versuche, höhere Werte einzustellen. Die Kamera, die ich benutze (keine andere Webcam ist an den Computer angeschlossen), ist die QuickCam V-UBK45: Mit der Software von Logitech kann ich Bilder mit voller Auflösung (1280x960) und allen dazwischen liegenden Bildern aufnehmen (zB 800x600).
Daher werden diese Frame-Größen von der Hardware unterstützt, aber mein Code kann nicht darauf zugreifen.
Weiß jemand was ich tun kann?
erfasst die Kamera * Video * bei 640x480 in anderen Anwendungen? – goncalopp
was @goncalopp sagte, ließ mich denken, dass sie die Auflösung für * Videostreams * (Bandbreite) im Treiber einschränken könnten, während ihre Anwendung immer noch * einzelne * Bilder bei höheren Werten aufnehmen kann. – berak
Kennen Sie den Code dafür in cv2, wie in cv und cv2 nicht mischen. Irgendwelche Ideen? –