视频测试_c++/c_opencv

static int StaticVideo_test(std::string videodir) {
	{
		VideoCapture capture;
		capture.open(videodir);
		double rate = capture.get(CAP_PROP_FPS);
		int delay = cvRound(1000.000 / rate);
		vector<Mat> src_res_images;
		vector<Mat> res_images;
		cv::Mat img, src_res_img;

		int num = 0;
		while (true)
		{
			capture >> img;
			if (img.empty()) { break; }
			else {


                                处理img,得到result_im
				cv::Mat result_im;
				
				hconcat(suitable_img, result_im, src_res_img);
				res_images.push_back(result_im);
				src_res_images.push_back(src_res_img);
				if (&src_asvl != NULL) {
					free(src_asvl.ppu8Plane[0]);
				}
				if (&dst_asvl != NULL) {
					free(dst_asvl.ppu8Plane[0]);
				}
				imshow("result", src_res_img);
				char c = waitKey(1);
				if (c == 27) { 
					break;
				}
			}
		}

		if (res_images.size() > 0) {
			cv::Mat frame = res_images[0];
			int ht = frame.rows;
			int wt = frame.cols;
			VideoWriter writer("result.avi", VideoWriter::fourcc('M', 'J', 'P', 'G'), rate, Size(wt, ht));
			for (size_t i = 0; i < res_images.size(); i++) {
				frame = res_images[i].clone();
				if (!frame.empty()) {
					writer.write(frame);
				}
			}
			writer.release();
		}
	}

	return 0;
}

  

 

posted @ 2020-12-28 16:13  皮卡皮卡妞  阅读(103)  评论(0编辑  收藏  举报