C++ OpenCV cvMAT Playback
C++ OpenCV cvMAT Playback
我有一个cvMat类型的矢量,我一直在其中存储从我的计算机网络摄像头拍摄的帧。在存储了100帧之后,我想要回放这些帧。如果记录是我的cvMats向量,我认为这可以这样做:
cvNamedWindow("play-back",CV_WINDOW_AUTOSIZE);
cvMoveWindow("play-back",100,100);
for (vector<Mat>::iterator iter = record.begin(); iter != record.end();++iter) {
imshow("play-back",*iter);
}
执行时,该程序似乎可以很好地存储cvMats并从网络摄像头获取输入,但是当我试图获得回放时,该程序似乎执行该部分代码非常快-如此之快,事实上,我没有时间欣赏结果。我怎样才能改进这段代码,使播放不那么匆忙?
你需要给OpenCV控制权来实际渲染窗口中的每个图像,并在切换到下一个之前保持一小段时间。您应该添加对cvWaitKey的调用,延迟为41ms(大约24 fps)。然后,您可以检查cvWaitKey的返回值,以便用户可以停止播放。像这样:
cvNamedWindow("play-back",CV_WINDOW_AUTOSIZE);
cvMoveWindow("play-back",100,100);
for (vector<Mat>::iterator iter = record.begin(); iter != record.end();++iter) {
imshow("play-back",*iter);
if( cvWaitKey(41) == 27 ) // ESC
break;
}
相关文章:
- CvMat:输入参数的大小不匹配
- IFTResult 到 cvMat 像素坐标
- IplImage vs CvMat
- from cvMat to QImage
- 如何释放CVMAT指针向量的记忆
- 如何计算和使用CVMAT平均值
- 将Qimage转换为cvMat 64FC3格式
- 如何在OpenCV 3.0中将Mat转换为cvMat
- 如何使用 CvMat 检索像素值
- 释放返回值/指向CvMat的指针的内存
- 元帅:用CvMat复制
- 将数据从 cv::Mat 复制到 CvMat,反之亦然
- 为什么当我尝试访问 CvMat 数据结构成员的第一个元素时,我会得到这个 ^@
- 为CvMat opencv分配一个双矩阵
- 使用OpenCV的ANN中的Unfieldy CvMat*
- 将IplImage*类型转换为CvMat
- 人脸检测OpenCV + Qt + cvMat
- OpenCV错误:cvGetSize中的错误参数(数组应该是CvMat或IplImage)
- 检索CV_32FC3 CvMat的元素
- C++ OpenCV cvMAT Playback