2013-02-22 83 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);"