Opencv2.4设置摄像机参数

时间:2012-05-23 12:00:39

标签: c++ opencv

尝试使用以下代码设置相机参数,但根本无法正常工作。

using namespace cv;

    int main(int argc,char *argv[])
    {
        VideoCapture cap(0); // open the default camera 
        if(!cap.isOpened())  // check if we succeeded
            return -1;
        bool value = cap.set(CV_CAP_PROP_FRAME_WIDTH,10);
        for(;;)
        {
            Mat frame;
            cap >> frame;   // get a new frame from camera
            imshow("frame", frame);
            unsigned char *dad = (unsigned char*)frame.data;
            if(waitKey(30) >= 0) break;
        }
        // the camera will be deinitialized automatically in VideoCapture destructor
        return 0;
    }

3 个答案:

答案 0 :(得分:2)

OpenCV尝试直接在相机中设置此大小,因此无需调整帧大小。

这种方法的问题在于,如果您的相机本身不支持此尺寸,OpenCV将无法设置该值,让您在检索帧后重新调整帧的大小。

cap.set()似乎返回了该功能的成功,我建议你检查一下。

我建议看看另一个帖子:how to change the capture resolution in OpenCV

答案 1 :(得分:0)

来自opencv的

正在使用directshow进行视频捕获。但是,您的相机仅支持一些分辨率设置,如480 * 320,640 * 480,720p,1080p。如果你设置别的东西,它根本不起作用。 如果你想检查你的相机支持什么样的分辨率。 下载graphedt并检查捕获引脚属性。

答案 2 :(得分:-1)

以上代码不用于更改摄像机参数。我认为在你的机器上显示视频是完整的。可能此链接对您有用http://opencv.willowgarage.com/wiki/CameraCapture