Конвертировать матрицу Matlab в видео файл
Как я могу преобразовать матрицу в видео файл? Конкретно в формате yuv. Или сначала конвертируйте его в.avi, затем перейдите к yuv. У кого-нибудь есть коды для этого? Первоначально это был файл.avi, затем я извлек все кадры в массив или структуру.
Я нашел это при переполнении стека и использовал его. Я создал 4D структуру в Matble [высота, ширина Y/U/V numberOfFrames]. Я использую 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.
1 ответ
Я думаю, что это должно быть что-то вроде этого:
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);