Opencv 3.4.2 +VS2015用摄像头采集图片并更改分辨率出现黑边的解决办法

Opencv 3.4.2 +VS2015用摄像头采集图片并更改分辨率出现黑边的解决办法

CSDN中已经有相当部分的博客写了如何利用OpenCV通过摄像头获取并保存图片,此处不再赘述。我遇到的问题是利用OpenCV的属性设置没有办法改变摄像头采集图片的分辨率

1.配置VS2013+OpenCV3.0.0

VideoCapture cap(0);
if (!cap.isOpened())
		return -1;
cap.set(CV_CAP_PROP_FRAME_WIDTH, 1280);
cap.set(CV_CAP_PROP_FRAME_HEIGHT, 720);

通过上述代码就能够打开摄像头“0”,并将显示的照片尺寸设定为:1280 x 720

2.配置VS2015+OpenCV3.4.2
我将上述代码移植到VS2015+OpenCV3.4.2上发现,无论怎么设置尺寸,输出的照片如下:
在这里插入图片描述
整个照片还是1280 x 720 ,但是始终会有黑色边框填充,并报如下错误:

[ INFO:0] VIDEOIO: Enabled backends(5, sorted by priority): FFMPEG(1000); MSMF(990); DSHOW(980); CV_IMAGES(970); CV_MJPEG(960)

经过查找大量资料和方法,最后在Google上找到如下方法:

VideoCapture cap(0 + cv::CAP_DSHOW);
cap.open(0 + cv::CAP_DSHOW);
if (!cap.isOpened())
  return -1; 
cap.set(CV_CAP_PROP_FRAME_WIDTH, 1280);
cap.set(CV_CAP_PROP_FRAME_HEIGHT, 720);

在这里插入图片描述
虽然还是会报如上错误,但是照片输出正常了。具体原因不知道,欢迎留言补充。
一天后:在release下就不会报错,完美运行。

发布了27 篇原创文章 · 获赞 4 · 访问量 4543

猜你喜欢

转载自blog.csdn.net/SGL_LGS/article/details/95016902