如何将矩阵转换为视频文件?特别是在yuv格式中。或者首先转换为.avi然后转到yuv。有没有人有这个代码?它最初是一个.avi文件,然后我将所有帧提取到一个数组或结构中。
我在堆栈溢出时发现了这个并使用它。我在Matble [高度宽度Y / U / V numberOfFrames]中创建了一个4D结构。我正在使用qcif所以它的大小是[176 144 3 150],但是创建的视频是错误的。 (全白)我应该先将其转换为RGB吗?
Orig; % 3D matrix
X = permute(Orig,[1 2 4 3]); % 4D matrix
movie = immovie(X,map); % map is the colormap you want to use
implay(movie);
另外,在我的程序中,原始的YUV文件首先被转换为avi。所以我的帧结构来自avi文件。
答案 0 :(得分:2)
我认为它应该是这样的:
aviobj = avifile('example.avi','compression','None');
for frame = 1:size(M, 4)
aviobj = addframe(aviobj, M(:,:,:,frame); %// This is assuming your image is a vector of RGB images. If it's a vector of indexed images then drop one : and make the loop go to size(M,3)
end
aviobj = close(aviobj);