赞
踩
当做录制视频使用,读取当前摄像头,保存为MP4格式的视频。
#include <iostream> #include <opencv2/opencv.hpp> using namespace std; using namespace cv; VideoCapture cap; VideoWriter outputVideo; int writevideo() { cap.open(0); //cap.set(CAP_PROP_FRAME_WIDTH, 1024); //cap.set(CAP_PROP_FRAME_HEIGHT, 768); if (!cap.isOpened()) { return -1; } int w = (int)cap.get(CV_CAP_PROP_FRAME_WIDTH); int h = (int)cap.get(CV_CAP_PROP_FRAME_HEIGHT); int frameRate = cap.get(CV_CAP_PROP_FPS); cout << frameRate << endl; int frameNum = 0; Mat frame, img; //保存视频的路径 string outputVideoPath = "./test1.mp4"; //outputVideo.open(outputVideoPath, CV_FOURCC('M', 'J', 'P', 'G'), 24.0, Size(640, 480)); //这是保存为avi的 outputVideo.open(outputVideoPath, CV_FOURCC('D', 'I', 'V', 'X'), 30.0, Size(640, 480)); while (1) { cap >> frame; resize(frame, frame, Size(640, 480)); outputVideo.write(frame); frameNum += 1; cout << frameNum << endl; imshow("show", frame); //按键开始,暂停 1000/25=40s if (waitKey(30) == 27 || frameNum == 250)// 空格暂停 { //waitKey(0); break; } } outputVideo.release(); return 0; } void readvideo(const string &filename) { Mat frame; VideoCapture cap(filename); while (1) { cap >> frame; imshow("show", frame); if (waitKey(27) >= 0) { break; } } cap.release(); destroyAllWindows(); } int main() { //writevideo(); readvideo("./test1.mp4"); return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。