如何在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;信息。什么条件导致相机框架掉落/如何检查这些条件?
答案 0 :(得分:1)
您可以使用此opencv函数cap.get(CV_CAP_PROP_POS_MSEC)来获取视频帧的演示时间戳。此函数返回一个整数倍的时间间隔。如果任何帧丢失,时间戳将跳过(N + 2)* time_interval而不是(N + 1)* time_interval,其中N是您当前的帧编号。