根据轨迹把速度聚类为3个类别,速度快的那部分不用平滑,速度慢的部分需要平滑。
速度聚类3个类别:
kmeans++
import numpy as np
import cv2
from sklearn.cluster import KMeans
from matplotlib.colors import hsv_to_rgb
from scipy.ndimage import gaussian_filter1d
# 改进版轨迹生成函数(带方向变化)
def generate_realistic_trajectory(num_points, speed_factors):
"""生成包含随机转向的复杂轨迹"""
trajectory = []
x, y = 400, 300 # 起始点居中
direction = 0 # 初始方向(弧度)
for factor in speed_factors:
# 每段开始时的随机方向偏移
direction += np.random.uniform(-np