これらの画像は、「空白」のフィールドに単純な機能を備えた白黒ですか、それともグレースケールで、より密な情報を備えていますか?
いくつかのアプローチを見ることができます。
movie() を使用して、一連の画像をアニメーションとして表示できます。
まばらで単純なデータの静的ビューの場合、各画像を 1 つの図の個別のレイヤーとしてプロットし、各レイヤーに前景に異なる色を与え、AlphaData を使用して背景を透明にして、シーケンスのすべてのステップが表示されるようにすることができます。終えた。色のグラデーションは、イメージ シーケンス内の位置に対応します。これが例です。
function plotImageSequence
% Made-up test data
nLayers = 9;
x = zeros(100,100,nLayers);
for i = 1:nLayers
x(20+(3*i),:,i) = 1;
end
% Plot each image as a "layer", indicated by color
figure;
hold on;
for i = 1:nLayers
layerData = x(:,:,i);
alphaMask = layerData == 1;
layerData(logical(layerData)) = i; % So each layer gets its own color
image('CData',layerData,...
'AlphaData',alphaMask,...
'CDataMapping','scaled');
end
hold off
Matlab は、2 つの後続の画像のどの「移動」ピクセルが互いに関連付けられているかを認識できないため、「線」が切り開く移動経路を直接表示することはラスター データでは困難です。画像内の幾何学的特徴の基礎となるベクトル データがあると思いませんか? Plot3() を使用すると、時間を z 軸として、それらの動きを示すことができる場合があります。または、通常の plot() と手動操作を使用して、ジオメトリック フィーチャのすべてのコントロール ポイントまたは頂点のパスをプロットすることもできます。
編集: patch() を使用して各ピクセルを画像シーケンスのインデックスの Z レベルで空間に浮かぶ小さな多角形として描画するバリエーションを次に示します。これは、あなたが求めている「表面」スタイルのプロットに似ていると思います。FaceAlpha プロパティをいじって、高密度のプロットをより読みやすくすることができます。
function plotImageSequencePatch
% Made-up test data
nLayers = 6;
sz = [50 50];
img = zeros(sz(1),sz(2),nLayers);
for i = 1:nLayers
img(20+(3*i),:,i) = 1;
end
% Plot each image as a "layer", indicated by color
% With each "pixel" as a separate patch
figure;
set(gca, 'XLim', [0 sz(1)]);
set(gca, 'YLim', [0 sz(2)]);
hold on;
for i = 1:nLayers
layerData = img(:,:,i);
[x,y] = find(layerData); % X,Y of all pixels
% Reshape in to patch outline
x = x';
y = y';
patch_x = [x; x+1; x+1; x];
patch_y = [y; y; y+1; y+1];
patch_z = repmat(i, size(patch_x));
patch(patch_x, patch_y, patch_z, i);
end
hold off