ビデオ キャプチャを介して流体ソリューション内の粒子を追跡するために、いくつかの MATLAB コードを使用しています。
追跡されるすべての粒子は、セルの配列 ( tr
) に格納され、各セル エントリは追跡される異なる粒子になります。セルにはN x 11
行列が含まれ、各行にはその特定のフレーム (位置、サイズ、コントラストなど) での粒子のパラメーターが含まれ、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 軸の値として使用することだと思いましたか? しかし、プロットに色を追加して相対的に保つ方法はまだわかりません。これにより、異なる粒子の速度をプロットされた色で比較できます。
どんな助けでも大歓迎です!