2014-01-05 4 views
0

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

// 1. обнаружить признаки , что я имею в виду, эта функция извлечения только хорошие черты,

cv::goodFeaturesToTrack(gray_prev, // the image 
features, // the output detected features 
max_count, // the maximum number of features 
qlevel,  // quality level 
minDist); // min distance between two features 

// 2. Трек особенности

cv::calcOpticalFlowPyrLK(
gray_prev, gray, // 2 consecutive images 
points_prev, // input point positions in first im 
points_cur, // output point positions in the 2nd 
status, // tracking success 
err);  // tracking error 

cv::calcOpticalFlowPyrLK принимает вектор точек из предыдущего изображения в качестве входных данных и возвращает соответствующие точки на следующем изображении. Предположим, я хочу, чтобы вычислить opical поток для каждого Pixle вместо хороших возможностей

в другом значении, начинают вычислять оптического потока от (1,1) до (т, п)

+0

Возможный дубликат [Отслеживание Opencv с использованием оптического потока] (http://stackoverflow.com/questions/9701276/opencv-tracking-using-optical-flow) –

+0

@RogerRowland Нет, этот вопрос не совпадает. –

+0

Могу ли я также предложить это? Это называется фазовой корреляцией: http://stackoverflow.com/questions/16718241/lucas-kanade-dense-optical-flow/21007222#21007222 –

ответ

6

сорте :: calcOpticalFlowPyrLK делает разреженный OF, то есть из точек функции, если вы хотите его для каждого пикселя, используйте

calcOpticalFlowFarneback.

Вычисляет плотный оптический поток (используя алгоритм Gunnar Farneback).

+0

Спасибо вам большое. – user3050468

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