将视频的所有视频帧(t)视为体积,我必须在时间上将它们分解为一组2d切片,即I(x,t) (沿x和t的切片体积)和I(y,t) (沿y和t的切片体积)。我如何在matlab中实现这一点?我不知道怎么做这个切片?
编辑:目前为止的代码
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到目前为止,我已经阅读了视频,并将帧保存在vidframe中。我该如何继续?
发布于 2013-03-15 13:08:41
下面是一个例子:
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现在我假设第三个维度是时间。要获得切片,需要使用squeeze函数:
squeeze(A(1,:,:))'终端:
ans =
0.8147 0.9134 0.2785
0.9649 0.9572 0.1419
0.7922 0.0357 0.6787squeeze(A(:,1,:))将及时给出第一列。
https://stackoverflow.com/questions/15424858
复制相似问题