2013-05-22 2 views
0

У меня есть видеофайл, который мне нужно визуализировать в Matlab. Из этого файла я извлекаю миниатюры с уменьшенной выборкой и объединяю их в одно изображение. Это изображение отображается командой imshow и дает обзор всего видео.Matlab визуализация видео

Я бы хотел щелкнуть мышью по любому миниатюре и автоматически извлечь из полноразмерной версии видео и отобразить ее на новом рисунке.

Какие функции мне нужно для реализации такой функциональности?

+0

Вы проверили класс 'VideoReader' http://www.mathworks.com/help/matlab/ref/videoreaderclass.html? – anandr

ответ

0

Грубо:

  1. Подключение к вашему видео файлу с помощью VideoReader объекта.
  2. Получить объект NumberOfFrames объекта VideoReader.
  3. Используйте метод read объекта VideoReader для чтения в кадрах.
  4. Петля от 1 до NumberOfFrames и считывается в каждом кадре.
  5. Прочитав в каждом кадре, сохраните его в плоскости k массива M-by-N-by-3-by-K, где K - количество кадров. (3 - если ваше видео RGB - это будет 1, если оттенки серого).
  6. Также измените размер каждого кадра на миниатюру с помощью функции imresize и сохраните ее в плоскости k массива m-by-n-by-3-by-k, где m < M и n < N.
  7. После того, как вы сохранили в этой форме, отобразите результаты на рисунке с помощью команды montage, в которой вы найдете все миниатюры для вас в сетке.
  8. Добавьте обратный вызов к фигуре, которая срабатывает при нажатии на изображение. Обратный вызов должен получить текущую позицию мыши (во время щелчка), определить, какой кадр был нажат, и создать новую фигуру, которая отображает соответствующую плоскость из нераспределенного массива.

Звучит ли это?

Смежные вопросы