0

時間内のビデオのすべてのビデオ フレーム ( ) をボリュームと見なして、それらを時間内の 2 次元スライスのセット、つまり(x と t に沿ったスライス ボリューム) と (y と t に沿ったスライス ボリューム)tに分解する必要があります。matlabでこれを達成するにはどうすればよいですか? このスライスを行う方法がわかりませんか?I(x,t)I(y,t)

編集:これまでのコード

vid='Orca vs Great White Shark.avi';
vidobj=mmreader(vid);
numofframes=get(vidobj,'numberOfFrames');
disp(numofframes);
for i=1:25:numofframes
  vidframe=read(vidobj,i);
end
for k=1:numofframes
  mov(k).cdata = read(vidobj,k);
end

これまでのところ、ビデオを読み、フレームを vidframes に保存しました。続行するにはどうすればよいですか?

4

1 に答える 1

1

次に例を示します。

A = rand(3,3,3)

ターミナル:

A(:,:,1) =

    0.8147    0.9134    0.2785
    0.9058    0.6324    0.5469
    0.1270    0.0975    0.9575


A(:,:,2) =

    0.9649    0.9572    0.1419
    0.1576    0.4854    0.4218
    0.9706    0.8003    0.9157


A(:,:,3) =

    0.7922    0.0357    0.6787
    0.9595    0.8491    0.7577
    0.6557    0.9340    0.7431

ここで、3 次元が時間であると仮定します。スライスを取得するには、スクイーズ関数を使用する必要があります。

squeeze(A(1,:,:))'

ターミナル:

ans =

    0.8147    0.9134    0.2785
    0.9649    0.9572    0.1419
    0.7922    0.0357    0.6787

squeeze(A(:,1,:)) は、時間の最初の列を提供します。

于 2013-03-15T05:08:40.757 に答える