2013-03-15 69 views
0

考虑到视频在时间上的所有视频帧(01​​)作为音量,我必须在时间上将它们分解成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 

到目前为止,我已经看了视频和vidframes保存帧。我如何继续?

回答

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 

现在假设第三个维度是时间。为了得到一个切片,你需要使用挤压功能:

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

终端:

ans = 

    0.8147 0.9134 0.2785 
    0.9649 0.9572 0.1419 
    0.7922 0.0357 0.6787 

挤压(A(:,1,:)),将给予第一列的时间。

+0

Hi.Thanks为answer.sorry要求,但我很新了这一点。你能告诉我如何用这种矩阵表示法来表示我的视频的x,y,t? – MaxSteel 2013-03-15 05:26:03

+1

检查: http://www.mathworks.in/help/imaq/bringing-image-data-into-the-matlab-workspace.html – sridutt 2013-03-15 05:34:48

+0

@SriduttNayak我一直在使用'帧=读读视频的所有帧(videoobject)',我如何将它看作上面的矩阵?如果您使用getsnapshot,则 – MaxSteel 2013-03-15 05:43:02