2011-12-29 3 views
1

Я использую OpenCV для написания приложения (на C++ в Windows 7), которое использует функцию cv.camshift() для отслеживания объекта на экране. Я заметил, что окно моей камеры (мое окно приложения, показывающее, что видит камера) имеет небольшую задержку относительно очень быстрых движений. Задержка, кажется, составляет около 0,1 секунды - очень маленькая, но заметная. Я разрабатываю приложение, которое очень чувствительно к этим задержкам. Чтобы исключить мою ошибку кодирования, я попытался использовать одно из приложений для видеороликов OpenCV, которое показывает, что камера видит на экране, и также имела эту небольшую задержку. Интересно, что когда я смотрю на то, что видит моя камера через Skype, похоже, практически нет задержки. Есть ли что-нибудь, что я могу сделать, чтобы заставить OpenCV работать быстрее, чтобы избавиться от этой крошечной задержки?Маленький экран OpenCV, показывающий задержку?

ответ

1

CamShift обнаруживает движение, используя meanShift - среднее движение центра объекта. Это должно быть рассчитано более чем на один кадр. Для частоты кадров 30 Гц глубина 3 кадра составит 0,1 секунды.

+0

Имеет смысл! Спасибо, что объяснили! Поэтому мне нужно будет реализовать другую технику - такую, которая не предполагает принятия среднего значения. Еще раз спасибо! – pkout

+0

Одна вещь, которая меня удивляет, однако, заключается в том, что когда я запускаю demo camera.py, который был упакован с суперпаком OpenCV, и использую его, чтобы просто увидеть вывод камеры, я действительно могу заметить, что, когда я быстро перемещаю объект в поле зрения также крошечная задержка. В этом случае не выполняется никаких перемещений. Поэтому, возможно, есть больше задержки, чем вычисление по нескольким кадрам. Пожалуйста, дайте мне знать, если вы считаете, что это неправильно. – pkout

+0

Чтобы добавить к этому обсуждению после проведения большего исследования - выясняется, что задержка присуща камерам - латентность компьютера в общении. Единственный способ избавиться от него - это получить более профессиональную камеру с более низкой задержкой. Мы закончили работу с камерой PointGrey, чья латентность очень мала. Так что это не проблема с программным обеспечением, а проблема с оборудованием. – pkout

Смежные вопросы