2013-02-22 89 views
1

大家好我正在使用我的相机使用openCV和Visual Studio 2012(C++)获取视频,但出现错误消息:“没有检测到相机!!!” 图片说明我probleme:openCV表示无法找到相机

whene我执行我的代码:

enter image description here

我选择好了:

enter image description here

我的代码:

#include <opencv2/objdetect/objdetect.hpp> 
#include <opencv2/highgui/highgui.hpp> 
#include <opencv2/imgproc/imgproc.hpp> 


#include <iostream> 
#include <stdio.h> 


using namespace std; 
using namespace cv; 



int main(int argc, const char** argv) 
{ 
    CvCapture* capture = 0; 
    Mat frame, frameCopy, image; 


    capture = cvCaptureFromCAM(CV_CAP_ANY); //0=default, -1=any camera, 1..99=your camera 

if(!capture) 
{ 
cout << "No camera detected" << endl; 
system("pause"); 
} 

cvNamedWindow("result", CV_WINDOW_AUTOSIZE); 

if(capture) 
{ 
cout << "In capture ..." << endl; 
for(;;) 
{ 
IplImage* iplImg = cvQueryFrame(capture); 
frame = iplImg; 

if(frame.empty()) 
break; 
if(iplImg->origin == IPL_ORIGIN_TL) 
frame.copyTo(frameCopy); 
else 
flip(frame, frameCopy, 0); 

cvShowImage("result", iplImg); 

if(waitKey(10) >= 0) 
break; 
} 
// waitKey(0); 
} 



cvWaitKey(50); 

cvReleaseCapture(&capture); 
cvDestroyWindow("result"); 

return 0; 
    } 

临屋nks for advance

+0

您使用OpenCV的发行版编译了哪些视频/相机后端?例如,ffmpeg/gstreamer?另外,什么版本的OpenCV? – 2013-02-22 20:17:09

+0

它的openCV2.2,ffmpeg/gstreamer ??? !!!对不起,我不明白 – 2013-02-22 20:20:10

+1

OpenCV实际上不包含任何代码与您的相机交谈。它包装知道如何与相机对话的第三方库。如果它没有在系统上安装的后端编译,则它将无法打开任何摄像头。 OpenCV可以在构建时配置的两个这样的库是ffmpeg和gstreamer。 – 2013-02-22 20:22:05

回答

2

您的代码没有问题。再次检查您的摄像头。 (例如,网络摄像头驱动程序)和测试:"capture = cvCaptureFromCAM(-1);"