您好,登錄后才能下訂單哦!
小編給大家分享一下OpenCV2從攝像頭獲取幀并寫入視頻文件的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
一段基于OpenCV2的代碼。
作用是從攝像頭獲取幀并將幀寫入指定的視頻文件中。
需要注意的是,視頻文件所在的路徑需要存在,例如D:/images/1.avi。images這個(gè)目錄需要存在。調(diào)用VideoWrite類對(duì)象的成員函數(shù)open時(shí),編解碼方式參數(shù)設(shè)置為-1,代碼運(yùn)行時(shí)會(huì)彈出對(duì)話框,手動(dòng)選擇編解碼方式。
#include<opencv2\highgui\highgui.hpp> #include<opencv2\imgproc\imgproc.hpp> #include<opencv2\core\core.hpp> int main() { //打開攝像頭 cv::VideoCapture captrue(0); //視頻寫入對(duì)象 cv::VideoWriter write; //寫入視頻文件名 std::string outFlie = "D:/1.avi"; //獲得幀的寬高 int w = static_cast<int>(captrue.get(CV_CAP_PROP_FRAME_WIDTH)); int h = static_cast<int>(captrue.get(CV_CAP_PROP_FRAME_HEIGHT)); cv::Size S(w, h); //獲得幀率 double r = captrue.get(CV_CAP_PROP_FPS); //打開視頻文件,準(zhǔn)備寫入 write.open(outFlie, -1, r, S, true); //打開失敗 if (!captrue.isOpened()) { return 1; } bool stop = false; cv::Mat frame; //循環(huán) while (!stop) { //讀取幀 if (!captrue.read(frame)) break; cv::imshow("Video", frame); //寫入文件 write.write(frame); if (cv::waitKey(10) > 0) { stop = true; } } //釋放對(duì)象 captrue.release(); write.release(); }
看完了這篇文章,相信你對(duì)“OpenCV2從攝像頭獲取幀并寫入視頻文件的示例分析”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。