Оптическое поле потока на основе изображений OpenCV

Я ищу простой алгоритм для обнаружения оптического потока всего входа.
В OpenCV функциональность отслеживания точек Lucas-Kanade действительно хороша, но она очень медленная для нескольких точек. Я ищу результат, основанный на изображении, а не точечный. Единственная информация, которую я могу найти, касается отслеживания LK.

Я могу рассчитать величина движения на основе простой разности кадров, но я хочу знать направление тоже. В основном я хочу получить текстуру поля оптического потока, которую я могу использовать для симуляции жидкости графического процессора.

Должен быть какой-то простой алгоритм, основанный на элементарных детекторах движения или что-то в этом роде. Что-то вроде комбинации разности кадров, масштабирования и размытия с 3 последовательными кадрами.

Просто чтобы быть супер ясным, я не хочу информацию о методе Лукаса-Канаде.

1

Решение

OpenCV имеет BackgroundSubtractor класс, который делает различие кадров, я думаю, вы должны будете сделать размытие самостоятельно. Это, однако, не строго расчет оптического потока.

У Farneback есть метод для плотного оптического потока, реализованный в OpenCV через резюме :: calcOpticalFlowFarneback (..) метод. Он будет генерировать матричный «поток», который имеет составляющие величины и направления. Метод Хорна-Шунка не является встроенным в OpenCV.

PS: Лукас Канаде не очень медленный. Это, вероятно, медленное извлечение характерных точек. Попробуйте использовать детектор cv :: FAST.

2

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

Других решений пока нет …

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