opencv设置摄像头分辨率必须先打开摄像头后,才能设置分辨率:
打开摄像头:
cv::VideoCapture g_imgCapture;
bool bsucc = g_imgCapture.open(0);
设置摄像头分辨率:
bool bret = g_imgCapture.set(CV_CAP_PROP_FRAME_WIDTH, 1280); bret = g_imgCapture.set(CV_CAP_PROP_FRAME_HEIGHT, 960);
设置的分辨率不一定就是你想要设置的分辨率,还需要摄像头能够支持得了该分辨率。可以使用通用摄像头软件AMCAP2.EXE,打开后在options里面有一项Video Capture Pin...,点进去可以看到数据流格式中输出格式为一个下拉列表,里面的格式即为可以支持的分辨率大小。
比如以上我设置了1280*960的分辨率,但是摄像头只支持1280*1080,不支持1280*960,则opencv会自动根据摄像头支持的分辨率切换到最靠近你设置的分辨率的一个分辨率,因此实际设置后的分辨率就是1280*1080.
具体有没设置成功,就可以查看获取到的图像的宽高是不是跟分辨率一样大小
cv::Mat img;
g_imgCapture>>img;
看img.cols与img.rows是不是与分辨率的宽高一样大小就知道实际设置了多少的分辨率。