openCV — видеокамера с веб-камеры — проблема с задержкой

Так что я на самом деле делаю проект дополненная реальность.
Я использую openCV, чтобы сделать снимок с 2 камеры.

Эти камеры не очень эффективны, я думаю, что их максимальная частота кадров составляет около 30 кадров в секунду.

Если я обновляю кадр камеры (методом чтения) в программе на каждом кадре, частота кадров приложения составляет около 25 кадров в секунду. Если я не обновлю это, это около 55 кадров в секунду.

Я полагаю, что эта задержка из-за openCV ждать нового кадра генерироваться камерами перед переходом к следующему шагу программы.

Но мне нужно, чтобы по крайней мере весь виртуальный объект отображался со скоростью 55 кадров в секунду для погружения Это способ сказать openCV, чтобы перейти к следующему вызову, если в VideoCapture объект?

И если нет никакого способа, есть ли другой кроссплатформенный API для более эффективного управления камерой?

Спасибо!

2

Решение

Я никогда не использую OpenCV в C ++, но я думаю, что это то же самое. Я использую OpenCV4Android и мне нужно что-то делать, когда входит фрейм, он будет реально замедлять fps, если вы поместите свою процедуру в функцию onCameraFrame () (я думаю, что она похожа на функцию read () в C ++), потому что только когда возвращение кадра, приходит следующий кадр

Мое решение — использовать другой поток для обработки кадра. В функции read () вы можете установить флаг, чтобы указать, что кадр находится в объекте videoCapture или нет, а затем использовать поток процесса, чтобы проверить флаг, если он есть, обработать его. FPS будет лучше.

1

Другие решения


По вопросам рекламы [email protected]