概述
从视频文件或捕获设备中抓取下一帧
virtual bool cv::VideoCapture::grab()
返回
在成功的情况下为真(非零)
该方法/函数从视频文件或相机中抓取下一帧,并在成功的情况下返回真(非零)。
该功能的主要用途是在多摄像头环境中,尤其是在摄像头没有硬件同步的情况下。 也就是说,您为每个摄像头调用 VideoCapture::grab(),然后调用较慢的方法 VideoCapture::retrieve() 来解码并从每个摄像头获取帧。 这样就消除了去马赛克或运动 jpeg 解压缩等的开销,并且从不同相机检索到的帧将在时间上更接近。
此外,当连接的摄像头是多头(例如,立体摄像头或 Kinect 设备)时,从中检索数据的正确方法是先调用 VideoCapture::grab(),然后再调用 VideoCapture::retrieve() 使用不同的通道参数值进行一次或多次。
//抓取一张图
void DlgVideo::on_btnGrabOne_clicked()
{
StopGrap();
if (m_videoGrab.open(0))
{
if (m_videoGrab.grab())
{
Mat dstImage;
if (m_videoGrab.retrieve(dstImage))
{
//OpenCV默认使用BGR格式,所以要转成RGB才能正常显示
//cvtColor(dstImage, dstImage, COLOR_RGB2BGR);
emit ShowImage(dstImage);
}
}
m_videoGrab.release();
}
}
最后
以上就是单薄时光为你收集整理的视频输入输出4-抓帧的全部内容,希望文章能够帮你解决视频输入输出4-抓帧所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复