2
我一直在四處搜索,無法找到如何獲取和設置相機捕獲設置的示例。例如捕捉分辨率,fps,色彩平衡等。我只能看到如何在保存捕捉到的視頻時更改設置的示例,但我希望能夠找到所有相機的捕捉模式並選擇我想要的模式。例如,我使用PS3eye網絡攝像頭,並在測試程序中允許您更改設置(以15,30,60,120 fps的320x240,以15,30,60,75 fps的640x480)。那麼OpenCV中是否有一個用於獲取所有相機捕捉模式並選擇其中一個的功能?我記得在OpenFrameworks中有一個函數來改變這些設置,但我想知道如何在OpenCV中做到這一點。獲取和設置相機設置
這裏是做那種用的OpenCV的了openFrameworks代碼我想要什麼:
vidGrabber.setDeviceID(4);
vidGrabber.setDesiredFrameRate(30); //I want this
vidGrabber.videoSettings();
vidGrabber.setVerbose(true);
vidGrabber.initGrabber(320,240); //And this
更改分辨率的作品,但我無法找到任何fps變化的證據。這是對的? CvCapture * capture; capture = cvCreateCameraCapture(5); cvSetCaptureProperty(capture,CV_CAP_PROP_FPS,15); – jhaip 2010-06-27 16:53:51
是的,應該沒問題。您的相機是否支持15FPS?如果是這樣,你如何確保FPS不變?還有cvGetCaptureProperty()函數,您可以使用它來查看FPS是否已更改。 – Adi 2010-06-27 17:53:12
我正在通過測量查詢框架所需的計算時間來看是否發生了變化,但沒有發生變化。我通過增加fps來改正cvQueryFrame()的延遲時間應該減少嗎?另外,當我將其設置爲不同的速度時,視覺上沒有區別,並且我確定相機可以在這些模式下運行,因爲它附帶的測試應用程序具有這些設置。我也在不同的地方嘗試過cvGetCapturePropety(),我一直得到0,甚至在我將它設置爲30之後。是否正確打印fps? printf(「%d \ n」,(int)cvGetCaptureProperty(capture,CV_CAP_PROP_FPS)); – jhaip 2010-06-30 16:50:46