检测OpenCV中的帧下降
如何在OpenCV中检测丢失的帧?现在我正在做如下检查:检测OpenCV中的帧下降,opencv,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);
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;
}
}
}
intmain(){
视频捕获上限(-1);
如果(!cap.isOpened()){
cout您可以使用此opencv函数cap.get(CV_cap_PROP_POS_MSEC)来获取视频帧的显示时间戳。此函数返回时间间隔倍数的整数。如果任何帧丢失,时间戳将跳过(N+2)*时间间隔而不是(N+1)*时间间隔,其中N是您当前的帧号。可能该消息来自驱动程序或某个底层库?可能您的处理速度比相机的fps慢?这可能会导致丢失帧(请求的帧太旧),而相机只发送较新的帧。