2012-11-28 171 views
1

我想在Ubuntu 12.04 LTS上使用openCV 2.4.3執行以下程序。 但我得到「相機未初始化爲輸出」任何人都可以幫助我。OpenCV 2.4.3攝像頭捕獲不工作在Ubuntu 12.04

這裏是代碼:

include <iostream> 
include "opencv2/imgproc/imgproc.hpp" 
include "opencv2/highgui/highgui.hpp" 

using namespace cv; 
using namespace std; 

int main() 
{ 
    VideoCapture cap(1); 

    if (!cap.isOpened()) 
    { 
     cout <<"Failed to initialize camera\n"; 
     return 1; 
    } 

    namedWindow("CameraCapture"); 

    Mat frame; 
    while (1) 
    { 
     cap>> frame; 
     imshow("cameraCapture",frame); 
     if (waitKey(30)>0)break; 
    } 
    destroyAllWindows(); 

    return 0; 

} 

請幫幫我!

感謝, Kushal

回答

1

沒有ü檢查默認捕獲設備?默認情況下它是0

VideoCapture cap(0); 
+0

感謝您的建議。相機驅動程序未安裝。然後,我使用sudo apt-get mesa utils安裝了一些GLX驅動程序。但仍然沒有運氣。現在我得到分段錯誤(核心轉儲)。我想測試我的網絡攝像頭軟件,所以我使用s/w samorama進行了測試。這工作正常。你的幫助非常感謝。我被卡住了。謝謝大家。 – user891558

+0

你能調試以知道在哪一行分割故障(核心轉儲)發生? – isrish

2

嘗試以下...

#include "iostream" 
#include <opencv2/core/core.hpp> 
#include <opencv2/highgui/highgui.hpp> 

using namespace std; 
using namespace cv; 

int main() 
{ 
    CvCapture *webcam = cvCaptureFromCAM(-1); 
    IplImage *img = NULL; 

    while(true) 
    { 
     img = cvQueryFrame(webcam); 
     cvShowImage("TEST",img); 
     cvWaitKey(20); 
    } 

    return 0; 
} 
+0

感謝您的建議。相機驅動程序未安裝。然後,我使用sudo apt-get mesa utils安裝了一些GLX驅動程序。但仍然沒有運氣。現在我得到分段錯誤(核心轉儲)。我想測試我的網絡攝像頭軟件,所以我使用s/w camorama進行測試。這工作正常。你的幫助非常感謝。我被卡住了。謝謝大家。 – user891558