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