Opencv無法調用cvCaptureFromCAM無法打開電腦自帶攝像頭


最近一段正在為畢設的問題而焦慮,因為畢設選的題是關於圖像處理方面的,在計算機視覺這個方面自己完全就是一個新手,完全都要從頭學呢!不由得讓人吐槽!

 

由於畢設要用的Opencv這個開源的計算機視覺庫,由於畢設需要采集人圖像,於是乎便敲了一段很簡單的代碼上去,但是結果卻並不如想象中的那樣。下面是代碼

 1 const char *windowTitle="saveImageDemoWindow";    
 2     cvNamedWindow(windowTitle,CV_WINDOW_AUTOSIZE);
 3     CvCapture *capture=NULL;
 4     capture    =cvCaptureFromCAM(-1);
 5     IplImage *frame;
 6     if(capture==NULL)
 7     {
 8         fprintf(stderr,"can't open the camera");
 9         return 1;
10     }else
11     {
12         while (1)
13         {
14             frame=cvQueryFrame(capture);    
15             if(!frame)
16                 break;
17             cvShowImage(windowTitle,frame);
18             char key=cvWaitKey(33);
19             if(key==13)
20                 break;
21         }
22     }
23     cvReleaseCapture(&capture);
24     cvDestroyWindow(windowTitle);
25     return 0;

按照官方文檔的說明其運行結果應該是完全正確的,但是實際運行過程中卻出現執行cvCaptureFromCAM(-1)這個函數無法獲得capture的情況。

按照官方文檔的說明,根據函數簽名,這里需要傳入一個整形值,代表攝像設備的索引,0為默認打開本地電腦自帶攝像設備,-1代表隨機的(如果電腦沒有外接攝像頭的話0和-1都可以),其他值則是指定要顯示的攝像設備。

但是實際測試中發現筆記本電腦貌似只能選擇參數0才可以,傳入-1卻並不行,無法正常打開攝像頭。

 

參考鏈接:http://blog.csdn.net/fightingforcv/article/details/19336181


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM