我有粒子轨迹,在图像序列(20个粒子,3500帧)上跟踪它们后获得。我需要获得这些粒子的速度矢量角度分布。粒子在每个帧上的位置存储在矩阵tracksX
和tracksY
中,每个3500x20两倍。这是我正在使用的代码:
speedX = diff(tracksX);
speedY = diff(tracksY);
angles = atand(speedY./speedX);
anglesh = angles(:);
figure(1); hist(anglesh,360);
然而,我在直方图上得到一个奇怪的对称图案,在[-0.5,0] bin中有一个巨大的峰值,在[0,0.5] bin中有零角度。 我没有足够的代表来添加图片,所以这里有一个链接Weird distribution figure
是否会因为Matlab执行的某些舍入而发生?怎么解决? 粒子运动有点随机,有朝X方向移动的趋势,相当于0° - 20°的箱子,因此我非常怀疑这种模式可能出现在初始数据中。
答案 0 :(得分:0)
让我猜一下:位置以像素为单位,粒子在时间点之间不会移动很多像素?
您所看到的是一堆离散化工件。
根据您的数据,您可能能够执行一些粒子位置拟合来估计子像素定位(尽管您应该小心设置它以避免像素锁定),或者您可以人为地使用更长的时间步骤(例如,采用第1至第4,第2至第5,第3至第6时间点之间的差异来制作直方图),使这看起来更加明智。