根據軌跡把速度聚類為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