我正在使用一些MATLAB代码通过视频捕获来跟踪流体解决方案中的粒子。MATLAB - 根据可比较的z值绘制不同颜色的线
所有跟踪的粒子都存储在一个单元格阵列中(tr
),每个单元格条目都是跟踪的不同粒子。然后单元格包含一个矩阵,其中每行包含该特定帧处的粒子参数(位置,大小,对比度等),N是粒子被跟踪的视频帧数。
每个单元格的第1列包含粒子x位置,每个单元格的第2列包含粒子y位置,每个单元格的第11列包含所有捕获帧(忽略所有其他列)的粒子平均速度。
用于粒子单元的一个例子:
现在通常超过我已经捕获我使用下面的代码中的视频的第一帧绘制这些轨迹:
image = read(mmreader([movie '.avi']), 1); %Loads the first frame of the avi file
figure
imshow(image);
hold on
for i = 1:length(tr) % Or choose which particle you want to show
plot3(tr{i}(:,1),tr{i}(:,2),tr{i}(:,11),'r')
end
但我希望做的是绘制粒子,因为我会使用上面的代码,但粒子轨道的颜色取决于其平均速度的值(红 - 快,蓝 - 慢等)。我想也许最好的方法是将它绘制在3D中,并使用平均速度作为Z轴值?但我仍然不确定如何将颜色添加到绘图中并保持相对性,以便可以通过绘制颜色来比较不同粒子的速度。
任何帮助将不胜感激!