加賀一稿一記

心は戦国

opencvで動画の読み書き

個人的なメモです。
動画というより画像詰め合わせのほうがしっくりくる.

書き込み
webカメラの画像をaviにガンガン書き込んでいく.

void write(){
	cv::VideoWriter wr(
		"test.avi",
		CV_FOURCC_DEFAULT,
		30,
		cv::Size(640, 480),
		true
	);
	if (!wr.isOpened())return;
	cv::VideoCapture cap(0);
	if (!cap.isOpened())return;
	cv::Mat frame;
	while (1){
		cap >> frame;
		wr << frame;
		cv::imshow("window", frame);
		int key = cv::waitKey(1);
		if (key == 'q')break;
	}
}

読み込み
aviを再生する.

void read(){
	cv::VideoCapture cap("test.avi");
	cv::Mat frame;
	while (1){
		cap >> frame;
		if (frame.empty())break;
		cv::imshow("window", frame);
		int key = cv::waitKey(1);
		if (key == 'q')break;
	}
}