Кто-нибудь может объяснить функцию Movie и cdata в MATLAB?

Я пытаюсь понять, как использовать cdata в функции Movie в MATLAB. Может ли кто-нибудь из экспертов дать мне краткое объяснение? Благодарю вас!


person view    schedule 09.10.2010    source источник


Ответы (1)


Как вы можете найти в документации, функция MOVIE воспроизводит фильм, который на самом деле представляет собой массив кадров. Кадр, в свою очередь, представляет собой одиночный «кадр» или неподвижное изображение, представляемое в MATLAB структурой с полями cdata (матрица данных пикселей) и colormap (если используется).

Вы можете создать кадр из текущего рисунка с помощью функции GETFRAME: F = getframe;. F.cdata будет матрицей изображения В x Ш x 3, с 3-м измерением, представляющим 3 цветовых канала - красный, зеленый и синий. Вы можете показать это командой image(F.cdata).

Если M является кадром фильма, вы можете показать только первый кадр с помощью image(M(1).cdata).

Я рекомендую вам поиграть с примерами в MOVIE и GETFRAME для лучшего понимания.

person yuk    schedule 09.10.2010
comment
Привет Юк. Спасибо за ваше объяснение. Это было совершенно ясно. Но тут у меня возникли небольшие затруднения. Как мне показать содержимое cdata, чтобы я мог выполнять дальнейшие манипуляции? - person view; 10.10.2010
comment
Вам недостаточно image или imshow? Или поясните, что значит показывать контент? - person yuk; 10.10.2010
comment
хорошо. Я пытаюсь использовать функцию фильма, чтобы прочитать видеоклип yuv и сохранить данные. Как вы думаете, будет ли работать следующая часть программы? Для k=1:nFrames mov(l).cdata=loadFileYuv(...) end функцию loadFileYuv можно найти здесь stackoverflow.com/questions/3887494/ - person view; 11.10.2010
comment
Я использовал loadFileYuv из других ваших предыдущих вопросов: stackoverflow.com/questions/3614441/. Если вы запустите mov = loadFileYuv(file, 176, 144, 1:nFrames);, вы получите переменную, которую вы можете использовать непосредственно в функции movie. Для доступа к отдельным кадрам imshow(mov(i).cdata). - person yuk; 11.10.2010
comment
Спасибо юк! Это действительно работает! Сейчас я работаю над тем, как разделить компоненты y, u, v в одном кадре. Спасибо еще раз! - person view; 11.10.2010
comment
Проверьте мой ответ на свой вопрос stackoverflow.com/questions/3887494/. Также, если ответ полезен для вас, рассмотрите возможность голосования и не забудьте принять лучший ответ. - person yuk; 11.10.2010