突然想起看視頻怎麼讀寫的問題,就搜了一下,結果都是以前老的c版本。c++版本更強大,也更精簡, 所以從官網找了個例子,希望能夠讓中文版本的我們看到,並能夠體會到c++版本的一些便利與不同之處。 #include "opencv2/opencv.hpp" using namespace cv; int main(int, char**) { VideoCapture cap(0); // 打開默認攝像頭,如果不是默認,可以改寫括號裏面那個0爲1,2,... if(!cap.isOpened()) // 檢查是否已經成功打開,如果沒有則直接退出程序 return -1; Mat edges; //c++版本已經都使用Mat結果存儲圖像,需要做適當瞭解才行 namedWindow("edges",1); //直接創建窗口,名字爲edges for(;;) //相當於while(1) { Mat frame; //臨時圖像 cap >> frame; // 這麼一個符號,已經把圖像從攝像機的存儲區複製到了frame裏面 cvtColor(frame, edges, CV_BGR2GRAY); //把彩色圖像轉換成灰度圖像,結果放到了edges裏面 GaussianBlur(edges, edges, Size(7,7), 1.5, 1.5); //把edges裏面的圖像做高斯模糊,後面那兩個是參數 Canny(edges, edges, 0, 30, 3); //canny 算子 imshow("edges", edges); //顯示圖像 if(waitKey(30) >= 0) break; // 這裏是主要的問題,等待30ms,然後進行下一個循環。這裏僅僅是顯示,沒有涉及到很精確的時間問題。 } // the camera will be deinitialized automatically in VideoCapture destructor return 0; }
c++ 版本 opencv 讀取視頻
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.