OpenCVをインポートするPythonコードを使用してWebカメラから画像を取得しようとしています。Python OpenCV access webcam最大解像度
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)
コードカメラのデフォルトの解像度は640×480であることを除いて、正常に動作し、私のコードは、唯一の解像度よりも低い値を設定することができるようだ:コードは次のようです。たとえば、イメージサイズを320x240に設定できますが、800x600に変更することはできません。エラーは表示されません。解像度を高い値に設定しようとすると、単に解像度がデフォルトの解像度(640x480)に設定されます。
QuickCam V-UBK45はLogitechのソフトウェアを使用していますが、他のウェブカメラはコンピュータに接続していません。フル解像度(1280x960)で写真を撮ることができます。 (例えば800x600)。
したがって、これらのフレームサイズはハードウェアからサポートされていますが、私のコードはそれらにアクセスできません。
誰でも私ができることを知っていますか?
他のアプリケーションでは640x480でカメラキャプチャ*ビデオをキャプチャしますか? – goncalopp
@ goncaloppは、私の思うように、ドライバーのビデオストリーム*(帯域幅)の解像度を制限するかもしれないと思っていましたが、アプリケーションはまだ高解像度で*シングル*写真を撮ることができます。 – berak
cvとcv2を混在させないように、このコードをcv2で知っていますか。何か案は? –