前一阶段主要学习的是关于图片的算法,接下来开始学习关于视频的算法。在开始之前先要把视频显示出来,继续我之前的QT程序,看看如何把如何用QT显示摄像头中的数据。
mopencv->videoInit();//初始化摄像头
while (waitKey(5) < 0)//等待5毫秒,因为调用摄像头属于驱动范围,数据从驱动层到用户曾比较复杂,操作也会比较费时,我们给他5毫秒的反映时间,以待数据从缓冲区中拷贝并显示在用户层。
{
Mat tmp = mopencv->videoGetFrame();//从数据流中获得一帧,接下来就可以如同显示图片一样,显示每一帧了
QImage tmpQimg = this->mopencv->cvMat2QImage(tmp);
this->mwidget->showImage(tmpQimg);
}
void myOpencv::videoInit()
{
VideoStream.open(0);
}
cv::Mat myOpencv::videoGetFrame()
{
Mat frame;
VideoStream>>frame;
return frame;
}
只是简单的封装了一下opencv的函数,这样就可以在QT中用opencv的API调用摄像头了。