2013-08-15 4 views
0

В настоящее время я работаю над проектом, который требует от меня найти фокус расширения с использованием оптического потока.Оптический поток и фокус расширения в OpenCV

Я в настоящее время имеют оптический поток, и я, используя формулу со страниц 13-14 эта бумага: http://www.dgp.toronto.edu/~donovan/stabilization/opticalflow.pdf

Я беру два кадра из видео и найти пирамиды из обоих с помощью buildOpticalFlowPyramid затем найти ключевые точки, используя goodFeaturesToTrack. Используя эти данные, я вычисляю разреженный оптический поток с помощью calcOpticalFlowPyrLK. Все три из этих методов предоставляются OpenCV.

Проблема, с которой я столкнулся, заключается в том, что мне нужен вектор потока для каждой ключевой точки изображения, чтобы заполнить матрицы A и b. Будет ли значение пикселя быть только местом ключевой точки в исходном изображении? И тогда вектор потока представляет собой разницу между начальным местоположением и новой точкой?

ответ

1

Да, это точно так. Используя термины/переменные в соответствии с бумагой и по следующей ссылке,

http://docs.opencv.org/modules/video/doc/motion_analysis_and_object_tracking.html#calcopticalflowpyrlk

p_i = (х, у) являются prevPts (точки в исходном изображении),

v = (U, V) являются векторы потока, полученные путем вычитания точек в prevPts от тех, в nextPts.