Интересная проблема! Поверь мне на слово с солью.
Для нашего стационарного ROI скорость может быть определена следующим образом:
Измерение времени, необходимого для перехода к следующей спице. Для этого вы можете измерить первое вхождение светлого пикселя и следующее вхождение светлого пикселя после обнаружения темного пикселя.
D-L-L-L-L-D-D-D.....D-L-L-L-L
^ ^
Когда вы идентифицируете эти точки, получите разницу во времени в секундах (t)
, чтобы узнать, сколько времени прошло.
Расстояние, как вы рассчитали:
2π(r)(θ/360)
Вы можете получить перпендикулярную скорость:
v_perp = 2π(r)(θ/360) / t
Теперь вы можете разделить его на r
, чтобы получить угловую скорость:
v_angular = 2πθ/360t
spoke_start_time, spoke_end_time = None, None
for idx, pixel in enumerate(VideoPixelMean):
if pixel > 150 and VideoPixelMean[idx-1] < 150:
if not spoke_start_time:
spoke_start_time = VideoTimestamp[idx]
else:
spoke_end_time = VideoTimestamp[idx]
break
else:
last_pixel = 0
t = spoke_end_time - spoke_start_time # This should be in seconds
THETA = 72
v_angular = (2 * np.pi * THETA) / (360 * t)