У меня проблема.У меня есть поток (пока) из моей веб-камеры, чтобы распознать лица.это работает, только если я не сплю в цикле while.
, но если я добавляю задержку в захват и сплю 30 мс, в следующем кадре он не использует текущий кадр, но проскальзывает.что странно, что если я использую / dev / video0, это работает, но если я использую поток через ffmpeg, это происходит тогда.
как это может произойти?
try {
while(running) {
capture >> frame;
if( frame.empty()) {
continue;
}
Mat frame1 = frame.clone();
vector<Rect> facesResult = detectAndDraw( frame1, cascade);
facesMutex.lock();
faces = facesResult;
facesMutex.unlock();
GETTING THIS SLIPPING IF I USE SLEEPING
//waitKey(250);
//std::this_thread::sleep_for(std::chrono::milliseconds(1000));
}
} catch (std::exception &e) {
facesMutex.unlock();
Napi::AsyncWorker::SetError(e.what());
}
Похоже, когда поток спит и некоторые кадры должны быть истекли, но вместо 1..2..3..4..5 я должен получить 5-й кадр, но даже если он использует режим сна, он должен следующий n-йкадр, он идет к следующему nt (2-му) кадру ...
это потому, что это реальный поток вместо /dev/video0
(так как устройство не проскальзывает)