Vorral писал(а):EDV какая скорость обработки 2 соседних кадров с помощью вашей Optical-flow? Какой принцип(обобщённо, я не прошу деталей) в ней заложен?
Алгоритм "Optical flow" на базе AVM описан (целиком, исходный текст открыт) в файле
Navigator\include\OpticalFlow.hПринцип прост: по заданной сетке с помощью AVM в память запоминаются фрагменты изображения на предыдущем кадре, а на следующем по той же сетке, ищется соответствие с сохранёнными в AVM фрагментами в заданной окрестности, и затем смещения по каждой области записываются в карту скоростей (mpDxVMap, mpDyVMap).
Скорость не оценивал, но на разрешении 320x240 будет ну очень быстро, особенно если в AVM количество уровней с 3-x (по умолчанию) до 2-x уменьшить.
- Код: Выделить всё • Развернуть
// Class constructor
CvOpticalFlow(CvSize aImgSize) {
mpAM = new CvAssociativeMemory32S;
...
int TreeTotal = mW*mH*cOF_Iterations;
mpAM->Create(cvSize(cOF_ApertureSize, cOF_ApertureSize), 2 /* <= тут был 0 */, TreeTotal, false);
...
}
Последний раз редактировалось
EDV 27 авг 2009, 11:56, всего редактировалось 2 раз(а).