【OpenCV】提取视频中指定帧

在进行项目的过程中,需要对一个视频的指定帧图片进行保存,在下面的程序中,想要的帧数为140,200,260,320,380,440,500,560,720,780,800

使用OpenCV进行实现的相关函数如下:

//将视频中的指定帧存为图片
void Vedio2Imag(string VideoName)
{
	VideoCapture m;
	string s;
	Mat img;
	//VideoWriter out("out.mp4", VideoWriter::fourcc('M', 'J', 'P', 'G'), 10, Size(1920, 1080));
	m.open(VideoName);
	if (!m.isOpened())
	{
		cout << "视频读入错误" << endl;
	}
	//m.set(CAP_PROP_FPS, 15);//设置视屏帧率

	int j;
	for (size_t i = 0; i < m.get(CV_CAP_PROP_FRAME_COUNT); i++)
	{
		j = i;
		if (j > 139 && j % 60 == 20 && j < 801)
		{
			m >> img;
			s = to_string(j) + ".jpg";
			std::cout << "第" << j << "帧" << endl;
			imwrite(s, img);
		}
		else
		{
			m >> img;
			continue;
		}
	}
}


上面的程序中,要特别注意 m>>img这个语句

一定要谨记谨记

你可能感兴趣的:(OpenCV)