【发布时间】:2011-06-12 13:54:08
【问题描述】:
我在 win 7 64 位电脑上使用 OpenCV 2.2 和 Visual Studio 2010。
我可以通过 OpenCV 显示图片和播放 AVI 文件,如“学习 OpenCV”一书中给出的,但我无法捕获网络摄像头图像。即使是随 OpenCV 文件一起提供的示例也无法访问网络摄像头。
我被要求输入“视频源 -> 捕获源”,有两个选项:HP 网络摄像头分离器和 HP 网络摄像头。如果我选择 HP 网络摄像头,窗口会立即关闭而不显示任何错误。 (我认为任何错误消息在关闭之前都太快而无法看到)。如果我选择 HP 网络摄像头分离器,那么应该出现网络摄像头图像(视频)的新窗口将充满统一的灰色。网络摄像头 LED 亮起,但看不到视频。我的网络摄像头可以正常使用 flash (www.testmycam.com) 和 DirectShow http://www.codeproject.com/KB/audio-video/WebcamUsingDirectShowNET.aspx
我确实尝试使用以下方法收到一些错误消息:
#include "cv.h"
#include "highgui.h"
#include <iostream>
using namespace cv;
using namespace std;
int main(int, char**)
{
VideoCapture cap("0"); // open the default camera
if(!cap.isOpened()) // check if we succeeded
{
cout << "Error opening camera!";
getchar();
return -1;
}
Mat edges;
namedWindow("edges",1);
for(;;)
{
Mat frame;
cap >> frame; // get a new frame from camera
cvtColor(frame, edges, CV_BGR2GRAY);
GaussianBlur(edges, edges, Size(7,7), 1.5, 1.5);
Canny(edges, edges, 0, 30, 3);
imshow("edges", edges);
if(waitKey(30) >= 0) break;
}
// the camera will be deinitialized automatically in VideoCapture destructor
return 0;
}
我得到的错误信息是:
warning: Error opening file (C:\Users\vp\work\ocv\opencv\modules\highgui\src\cap
_ffmpeg.cpp:454)
Error opening camera!
我不知道这个“cap_ffmpeg.cpp”是什么,我不知道这是否与爱管闲事的“HP Media Smart”有什么问题。
任何帮助将不胜感激。
【问题讨论】:
-
在 VideoCapture 行中 cap("0");我添加了“引号”。也许这就是问题所在。但是为什么默认样本不起作用?在结束进程“YouCam Mirage”pacs-portal.co.uk/startup_pages/22000-22999/… 后,如果我选择“HP Webcam”而不是“HP Webcam Spltter”,样本不会关闭。奇怪。
-
我不知道这是否适合你,但 user660815 的回复解决了我所有的问题。您可能需要考虑将他的答案标记为正确答案。