从VideoWriter生成的电影尺寸:420x560x3?

时间:2014-06-03 18:28:13

标签: matlab video dimensions

我正在尝试使用VideoWriter函数下的一系列函数在Matlab中创建一部电影。我的代码有点像下面所示:

vidObj=VideoWriter('movie.avi');
open(vidObj);

for i=1:N %N is number of frames

[nx,ny]=coordinates(Lx,Ly,Nx,Ny,[x(i),-y(i)]);
%Lx and Ly refer to the length and height in meters. 
%Nx and Ny are number of pixels (boxes) and fit into the respective L's. 
%If Lx=10e-6 , with Nx=5, there will be 5 pixels in x dimension,
%each of length 2e-6 m.
[xf,yf]=ndgrid(nx,ny);
zf=zeros(size(xf))+z(i);    

% generate a frame here
[E,H]=nfmie(an,bn,xf,yf,zf,rad,ns,nm,lambda,tf_flag,cc_flag);
Ecc=sqrt(real(E(:,:,1)).^2+real(E(:,:,2)).^2+real(E(:,:,3)).^2+imag(E(:,:,1)).^2+imag(E(:,:,2)).^2+imag(E(:,:,3)).^2);
clf
imagesc(nx/rad,ny/rad,Ecc)
rectangle('Position',[-rad(end),-rad(end),dia(end),dia(end)],'Curvature',[1,1]);
axis image;
axis off;
currFrame=getframe(gcf);
writeVideo(vidObj,currFrame);
end
close(vidObj);
toc
return

这会生成一部名为movie.avi的电影。但是,电影(以及从命令窗口生成的tif图像)的尺寸为" 420x560x3"。我不明白它是如何到达这里的。请帮忙!! 并提前感谢你。

1 个答案:

答案 0 :(得分:0)

视频的每一帧都有420 x 560像素,每个像素都有一个RGB值,存储为3个数字。例如:

CurrFrame(120, 300) = [0 0 0]

将使第120个像素为300像素。和

CurrFrame(120, 300) = [1 0 0]

会使同一像素亮红色。

您获得的尺寸是单个框架或图像的尺寸。