OpenCV видео обнаружение лица с использованием ffmpeg и RSTP скольжения - PullRequest
0 голосов
/ 23 марта 2019

У меня проблема.У меня есть поток (пока) из моей веб-камеры, чтобы распознать лица.это работает, только если я не сплю в цикле 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 (так как устройство не проскальзывает)

...