OpenCV - 无法抓取所有帧
OpenCV - not able to grab all frames
我有一个关于使用OpenCV捕获帧的非常基本的问题。我的代码如下所示:
VideoCapture cap(0);
cv::Mat mat;
int i = 0;
while(cap.read(mat)==true) {
//some code here
i = i + 1;
}
效果很好。但是,当我查看OpenCV的日志时,它说
帧数收到225帧,抢到123帧。
这个抓取(123)通常与我的代码中的变量"i"(循环数)匹配。理想情况下,我的代码应该能够读取所有接收的帧,不是吗?有人可以解释这种行为吗?
调用cap.read(mat)
需要一定的时间,因为它必须获取和解码图像的视频源并将其转换为cv::Mat
格式。此时间量似乎大于视频的捕获速率。您可以使用以下命令确定视频捕获的每秒帧数:
double frames_per_second = cap.get(CV_CAP_PROP_FPS);
尝试计时cap.read(mat)
调用所需的时间,看看是否可以看到接收帧与抓取帧的比率与捕获时间 ( 1/frames_per_second
) 和cap.read(mat)
执行时间的比率之间的关系。
源:http://opencv-srf.blogspot.ca/2011/09/capturing-images-videos.html
相关文章:
- 为什么这个加载函数只抓取文件中的第一件事?
- 无法使用 OpenCv 3.4.5 从具有C++ dll 的网络摄像机 (rtsp) 中抓取帧
- 如何从日志文件中抓取状态代码?(在 C++ 中)
- DXGI API:AcquireTextFrame()从不抓取更新的图像,始终为空
- 如何从 avi 文件中抓取所有帧 - 如何修改 MS 样本采集卡样本
- 如何抓取指向Qt中弹出对话框的指针,该对话框阻止了QTest中的UI线程
- 为什么抓取窗口标题的代码会导致应用崩溃?
- 用Xcb而不是Xlib抓取像素的颜色
- 如何在C ++(qt)代码中使用python脚本?(网页抓取方面)
- OpenCV 3.2 在抓取时提供选择超时,但 fscyber 可以工作
- 使用 Matrox 进行帧抓取
- C++生产者使用者中,同一使用者线程会抓取所有任务
- 在编译时间之前抓取常数值
- OpenCV + QML(从另一个线程抓取帧)
- OpenCV视频捕获抓取和检索
- 视频抓取不起作用 OpenCV
- 无法在 OpenCV 中抓取帧
- OpenCV - 无法抓取所有帧
- 使用 openCV c++ 示例代码执行抓取后保存输出图像
- 华硕Xtion Pro Live无法从VideoCapture OpenCV中抓取图像