检测OpenCV中的帧丢失

时间:2016-03-30 05:15:23

标签: opencv

如何在OpenCV中检测丢帧?现在我正在进行如下检查:

int main() {
     VideoCapture cap(-1); 
     if (!cap.isOpened()) {
         cout << "Webcam is not open." << endl;
         return -1;
     }

     Mat frame;

     while (true) {
         cap.read(frame);

         if (!frame.empty()) {
             imshow("frame", frame);
         }
         else {
             cout << "No captured frame" << endl;
             break;
         }
     }
}

但是我仍然收到消息说&#34;相机框架掉了!&#34;没有我的&#34;没有捕获框架&#34;信息。什么条件导致相机框架掉落/如何检查这些条件?

1 个答案:

答案 0 :(得分:1)

您可以使用此opencv函数cap.get(CV_CAP_PROP_POS_MSEC)来获取视频帧的演示时间戳。此函数返回一个整数倍的时间间隔。如果任何帧丢失,时间戳将跳过(N + 2)* time_interval而不是(N + 1)* time_interval,其中N是您当前的帧编号。