该方案对相邻两帧图像进行absdiff之后,寻找角点并计算平均坐标。通过跟踪平均坐标的移动判断物体移动方向。该方案程序已经完善,可以输出到csv文件,稳定性较好。
-
capture_src = 0
视频源。输入
0
来使用内置相机,输入文件路径来指向文件。默认0
-
is_flipped = True
是否左右镜像图像。当以内置相机为源时建议打开。
-
number_feature_point = 75
diff图像上寻找的最优角点数量。数量越多数据越稳定,但会极大地降低性能。
-
move_threshold = 1
静止状态判断阈值。当平均像素差值低于此阈值时,判断为没有任何动作,也不进行角点寻找。
-
overflow_threshold = 20
场景切换判断阈值。当平均像素差值高于此阈值时,判断为场景切换或镜头大幅移动,也不进行角点寻找。
-
idle_status_threshold = 0.2
状态历史数据投票静止状态判断阈值。投票数据高于该阈值判断为移动,反之判断为静止。
-
status_history_depth = 3
状态历史数据深度。决定用于投票而保留的历史数据数量。
-
frame_interval = 10
每次处理完之后等待的时常(单位:ms)。不能设置为0,否则程序将无法正常工作。
-
export_as_csv = False
是否导出到csv文件。
-
csv_filename = "sample.csv"
csv文件名。
列名 | 解释 |
---|---|
frame | 帧计数 |
l1_diff_sum | 平均每像素差值 |
l1_has_corners | 是否寻找到角点 |
l1_avg_x | 角点平均x轴坐标 |
l1_avg_y | 角点平均y轴坐标 |
l2_motion_state | 使用阈值判断平均每像素差值后得出的运动状态(-1=静止,0=正常移动,1=镜头移动/场景切换) |
l2_delta_x | 角点平均x轴坐标差值 |
l2_delta_y | 角点平均y轴坐标差值 |
l3_result | 投票统计后得出的运动方向 |
计算diff图像重心,再跟踪重心移动判断运动方向。程序大致完善,不支持输出csv,数据稳定性一般。
计算diff图像,再使用光流跟踪。不稳定,需要进一步完善。