Я интегрировал IP-камеру с OpenCV в Python, чтобы выполнять покадровую обработку видео из живого потока. Я настроил FPS камеры как 1 секунду, чтобы я мог получать 1 кадр в секунду в буфере для обработки, но моему алгоритму требуется 4 секунды для обработки каждого кадра, что вызывает застой необработанного кадра в буфере, который продолжает расти со временем и вызывая экспоненциальную задержку. Чтобы разобраться в этом, я создал еще один поток, в котором я вызываю API cv2.grab () для очистки буфера, он перемещает указатель на последний кадр при каждом вызове. В основном потоке я вызываю метод retrieve (), который дает мне последний кадр, захваченный первым потоком. Благодаря этой конструкции проблема застоя кадра устранена и экспоненциальная задержка удалена, но все же постоянная задержка в 12-13 секунд не может быть устранена. Я подозреваю, что когда вызывается cv2.retrieve (), он получает не последний кадр, а 4-й или 5-й кадр из последнего кадра. Есть ли какой-либо API в OpenCV или какой-либо другой шаблон проектирования, чтобы исправить эту проблему, чтобы я мог получить последний кадр для обработки.
Заранее спасибо за помощь. Я очень признателен за быстрый ответ.