2017-09-25 8 views
0

Ich suche nach der durchschnittlichen Geschwindigkeit eines Blobs, sobald er erkannt wird, bis er vom Bildschirm verschwindet. Ich habe Probleme damit, die Grenze der Werte festzulegen benutzen. HierMatlab - Durchschnitt von Nicht-NaN-Rahmen berechnen

sind einige Beispieldaten:

#35 x_cen=NaN y_cen=NaN curSpeed=0 
Elapsed time is 0.263965 seconds. 
#36 x_cen=NaN y_cen=NaN curSpeed=0 
Elapsed time is 0.263827 seconds. 
#37 x_cen=NaN y_cen=NaN curSpeed=0 
Elapsed time is 0.420120 seconds. 
#38 x_cen=3.052941e+01 y_cen=1.147059e+01 curSpeed=0 
Elapsed time is 0.302205 seconds. 
#39 x_cen=30 y_cen=1.104167e+01 curSpeed=6.813593e-01 
Elapsed time is 0.294330 seconds. 
#40 x_cen=30 y_cen=1.104167e+01 curSpeed=6.813593e-01 
Elapsed time is 0.281333 seconds. 
#41 x_cen=30 y_cen=1.104167e+01 curSpeed=6.813593e-01 
Elapsed time is 0.293527 seconds. 
#42 x_cen=NaN y_cen=NaN curSpeed=0 
Elapsed time is 0.272795 seconds. 
#43 x_cen=NaN y_cen=NaN curSpeed=0 
Elapsed time is 0.271102 seconds. 
#44 x_cen=NaN y_cen=NaN curSpeed=0 

In diesem Beispiel Daten würde Ich mag die durchschnittliche Geschwindigkeit auf dem Objekt aus dem Rahmen 39 ausgehend 41.

Im Moment einzurahmen ich die durchschnittlichen calcualte kann Geschwindigkeit einer bestimmten Anzahl von Rahmen mit dem folgenden Code:

avgSpeed = (curSpeed + sum(speedData(end-2:end)))/4; 

ich plane die obige Zeile in einer if Aussage zu wickeln, wenn ich ca n erhalten Sie eine Möglichkeit, variable Zeilennummern zu verwenden.

+0

Wenn Sie eine Matrix haben, können Sie logische Indizierung verwenden, um die Nicht-NaN-Werte zu extrahieren. – m7913d

Antwort

0

habe ich den folgenden Code die Anzahl der Bilder und die Durchschnittsgeschwindigkeit zu bestimmen: enthält alle Daten

moving = false; 
startFrame = 0; 
endFrame = 0; 
counter = 0; 
     speedTotal = 0; 
     if curSpeed > 0 && moving == false 
      counter = counter + 1; 
      speedTotal = speedTotal + curSpeed; 
     elseif curSpeed == 0 
      moving = false; 
      avgSpeed = speedTotal/counter 
      counter = 0; 
      avgSpeed = 0; 
      speedTotal = 0; 
     end 
Verwandte Themen