Вот заявление от MathWorks File Exchange , которое должно делать то, что вы хотите:
Функция loadFileYuv
из вышеприведенного представления загрузит файл YUV и вернет массив кадров фильма. Каждый кадр фильма представляет собой структуру со следующими полями:
cdata
: матрица значений uint8
. Размеры высота-ширина-на-3.
colormap
: Матрица двойных чисел N-3. В системах истинного цвета пусто.
Таким образом, вы можете извлечь поле cdata
из каждого кадра фильма в массиве и сохранить / использовать его как изображение RGB.
Ваш код может выглядеть примерно так:
nFrames = 115; %# The number of frames
vidHeight = 352; %# The image height
vidWidth = 240; %# The image width
mov = loadFileYuv('myVideo.yuv',vidHeight,vidWidth,1:nFrames); %# Read the file
for k = 1:nFrames %# Loop over the movie frames
imwrite(mov(k).cdata,['myImage' int2str(k) '.bmp']); %# Save each frame to
%# a bitmap image file
end