OpenCV簡介與安裝
742
2025-04-04
從攝像頭中讀取
“視覺”在計算機世界中可以表示很多東西,在一些情況下,我們分析從任意地方加載的靜止的圖像。在另一些情況下,我們會分析從硬盤中讀取的視頻。然而在更多的情況下,我們想要和從某種攝像頭中讀取的實時數據流進行交互。
OpenCV——或更準確地說,OpenCV中的HighGUI模塊——為我們提供了一個簡單的方式來駕馭這種情況。這個方法很接近于我們使用cv::VideoCapture從硬盤讀取視頻的方式,事實上,cv::VideoCapture對磁盤上的文件和攝像頭是有一致接口的。對于前者來說,需要給它一個指示讀取文件名的路徑,對于后者來說,需要給它一個相機ID號(如果只有一個攝像頭連接,這個ID號通常為0),ID的默認值是-1,這意味著“隨意選擇一個”,當然,當只有一個攝像頭可以選擇的時候這能夠很好地工作(參考第8章,查閱詳細解釋),示例2-10展示了從文件或者攝像頭中讀取視頻。
示例2-10:同一個對象可以讀取視頻文件,也可以連接攝像頭
#include
cv::VideoCapture cap;?? if (argc==1) {? ???cap.open(0);?????????? // open the first camera
} else {
cap.open(argv[1]);
}?? if( !cap.isOpened() ) {? // check if we succeeded???? std::cerr << "Couldn't open capture." << std::endl;???? return -1;?? }
// The rest of program proceeds as in #simple_opencv_program_for_playing_a_vide?? ...
在示例2-10中,如果一個文件名被提供,OpenCV將如示例2-3所示打開指定的文件。如果沒有給予任何文件名,程序將嘗試打開一個攝像頭。我們加入一段檢查代碼來確定程序是否真的開啟了一些東西,如果沒有,將報錯。
視頻 OpenCV
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。