Estoy usando la función Pyramid Lukas Kanade de OpenCV para estimar el flujo óptico. llamo al cvGoodFeaturesToTrack
y luego al cvCalcOpticalFlowPyrLK
. Este es mi código:Flujo óptico usando opencv
while(1)
{
...
cvGoodFeaturesToTrack(frameAth,eig_image,tmp_image,cornersA,&corner_count,0.01,5,NULL,3,0.4);
std::cout<<"CORNER COUNT AFTER GOOD FEATURES2TRACK CALL = "<<corner_count<<std::endl;
cvCalcOpticalFlowPyrLK(frameAth,frameBth,pyrA,pyrB,cornersA,cornersB,corner_count,cvSize(win_size,win_size),5,features_found,features_errors,cvTermCriteria(CV_TERMCRIT_ITER| CV_TERMCRIT_EPS,20,0.3),CV_LKFLOW_PYR_A_READY|CV_LKFLOW_PYR_B_READY);
cvCopy(frameBth,frameAth,0);
...
}
frameAth
es el marco gris anterior y frameBth
es el actual marco gris de una webcam. Pero cuando presento el número de buenas características para seguir en cada cuadro, el número disminuye después de la suma y sigue disminuyendo. pero si termino el programa y ejecuto el código otra vez (sin alterar el campo de visión de la cámara web), se muestran muchos más puntos como buenas características para seguir ... ¿Cómo se puede para el mismo campo de visión y para el mismo escena la función da tanta diferencia en el número de puntos ... y la diferencia es alta ... por ejemplo, el número de puntos como buenas características para seguir después de 4 minutos de ejecución es 20 o 50 ... pero cuando el mismo programa finaliza y ejecutado de nuevo, el número es de 500 a 700 inicialmente, pero de nuevo disminuye lentamente ... estoy usando opencv durante los últimos 4 meses, por lo que soy lil nuevo para abrirCV ... por favor guíanme o dime dónde puedo encontrar una solución ... un montón de Gracias por adelantado ...
@ sgar91 ... gracias ... Tuve una mejora en el rendimiento por su sugerencia –
tuve el mismo problema hace un tiempo. – sgarizvi
@rotating_image No entiendo por qué esta respuesta fue aceptada. Cuando restablece el número de características, no tiene sentido llamar 'cvCalcOpticalFlowPyrLK'. Le dará el mismo resultado cuando no lo llame ... Lea los documentos primero. – ArtemStorozhuk