我一直在搜索,但找不到如何获取和设置相机捕捉设置的示例。例如捕捉分辨率,fps,色彩平衡等。我只看到了保存捕获的视频时如何更改设置的示例,但我希望能够找到所有相机的捕捉模式并选择我想要的模式。例如,我正在使用PS3eye网络摄像头,在测试程序中,它允许您更改设置(320x240 at 15,30,60,120 fps,640x480 at 15,30,60,75 fps)。那么在OpenCV中是否有一个功能来获取所有相机的捕捉模式并选择一个?我记得在OpenFrameworks中有一个更改这些设置的功能,但我想知道如何在OpenCV中执行此操作。
以下是OpenFrameworks与OpenCV的代码,它可以实现我想要的功能:
vidGrabber.setDeviceID( 4 );
vidGrabber.setDesiredFrameRate( 30 ); //I want this
vidGrabber.videoSettings();
vidGrabber.setVerbose(true);
vidGrabber.initGrabber(320,240); //And this
答案 0 :(得分:1)
cvSetCaptureProperty()
带有这些标志:
CV_CAP_PROP_FRAME_WIDTH - width of frames in the video stream (only for cameras)
CV_CAP_PROP_FRAME_HEIGHT - height of frames in the video stream (only for cameras)
CV_CAP_PROP_FPS - frame rate (only for cameras)
答案 1 :(得分:0)
我构建了一个 Directshow 相机库,它能够获取相机分辨率和属性。
https://github.com/kcwongjoe/directshow_camera
fps 通常取决于您的机器、分辨率和曝光时间。要更改fps,您可以在固定分辨率下修改曝光时间。