我在Windows 7 64位上的Visual C ++ 2010 Express上使用OpenCV 2.2。每当我尝试运行一些简单的程序来访问和显示网络摄像头的图像时,我会得到一个黑色的输出窗口,而不是实际的网络摄像头。 OpenCV检测到网络摄像头,不报告任何错误或警告,但每个帧都是黑屏图像。
这是我一直在尝试的代码:
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat img;
VideoCapture cap(0);
while (true)
{
cap >> img;
Mat edges;
cvtColor(img, edges, CV_BGR2GRAY);
Canny(edges, edges, 30, 60);
imshow("window label", img);
waitKey(100);
}
return 0;
}
关于什么似乎是问题的任何想法?在OpenCV 2.4.2上一切正常,但我不得不切换,因为我无法让MSER正常工作。
答案 0 :(得分:1)
尝试使用VideoCapture cap(-1)
这将自动选择网络摄像头设备。它可能会或可能不会解决问题,但值得一试。