Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы 9 10 по курсу СМРТМ.doc
Скачиваний:
40
Добавлен:
03.12.2018
Размер:
493.06 Кб
Скачать
    1. Базовые элементы работы с avi-файлами в Simulink Задание к работе

Создать модель в среде Simulink, которая считывает видеоинформацию в формате AVI из файла 'barcodes.avi', отображает ее, выполняет манипуляции с интенсивностью основных цветов (ослабляет зеленую компоненту в 3 раза и усиливает синюю – в 1.5 раза) и сохраняет полученную таким образом новую видеоинформацию в новом файле 'Modification.avi'. Дополнительно модель должна обеспечить вывод текстовой информации поверх видео о номере отображаемого кадра. Реализовать звуковое сопровождение записываемого видеофайла 'Modification.avi' при помощи аудиопотока из файла 'speech_dft.wav'.

Пояснения к работе

Работу необходимо начать с создания модели в среде Simulink. Для этого необходимо создать новый файл модели с помощью команды File/New/Model меню рабочего стола MATLAB. Для хранения его следует разместить в соответствующей папке (см. "Общие требования к выполнению лабораторных работ") с помощью команды File/Save As из меню окна созданной модели, дав при этом ему название, соответствующее номеру работы, например 'Lab2_1.mdl'.

Для выполнения поставленного задания (считывания видео в формате AVI из файла) в модель необходимо добавить блок "From Multimedia File" из библиотеки "Video and Image Processing Blockset > Sources" при помощи Simulink Library Browser. Активизация окна Library Browser может быть осуществлена командой View/Library Browser из меню окна модели. Для того чтобы расположить указанный блок в окне модели, необходимо открыть соответствующий раздел библиотеки (Video and Image Processing Blockset > Sources) в окне Library Browser (в его левой панели Libraries) и мышкой перетащить блок в созданное окно.

Затем следует задать нужные значения параметров вставленного блока. Для этого необходимо двойным нажатием мышки на блоке активизировать диалоговое окна, позволяющее установить нужные значения параметров блока. В поле ввода для параметра Filename следует ввести barcodes.avi (имя файла), а для параметра Image signal выбрать значение Separate color signals (представление видеоизображения в виде трех отдельных компонент с информацией об основных цветах).

Для отображения видеоинформации в модель необходимо добавить блок "Video Viewer" из библиотеки "Video and Image Processing Blockset > Sinks", в котором для параметра Image signal выбрать значение Separate color signals (сделать это можно через меню File для Video Viewer GUI). Входы вставленного блока необходимо соединить с соответствующими выходами блока "From Multimedia File". Соединение (установка связей) производится при помощи мышки путем нажатия ее левой кнопки на входе (или выходе) и протягивания ее до точки соединения, где левая кнопка должна быть отпущена. В результате этих действий созданная модель должна иметь вид, как на рис. 2.1 .3.

Для того чтобы проверить созданную модель, необходимо провести симуляцию работы модели. Перед тем как это сделать, необходимо задать параметры симуляции. Для этого надо активизировать диалоговое окно Configuration Parameters при помощи команд меню окна модели Simulation/Configuration Parameters,и в открывшемся диалоговом окне для ветви Solver дерева параметров на соответствующей панели установить значения: Stop time = 10, Type = Fixed-step, Solver = Discrete (no continuous states); а для ветви Diagnostics/Data Validity для параметра Detect precision loss выбрать значение none. Симуляцию модели можно запустить при помощи команд Simulation/Start меню окна модели или команды Start Simulation панели инструментов.

Рис

2.1.3

. Первоначальный вид модели

Поскольку информация о видеоизображении передается по трем отдельным каналам RGB, манипуляции с интенсивностью основных цветов выполнить очень просто. Для этого в канал передачи соответствующего цвета необходимо вставить блок "Gain" из библиотеки "Simulink > Math Operations", который позволяет изменять уровень передаваемого сигнала, умножая входное значение на постоянное значение Gain (коэффициент усиления). Вставив блок "Gain" в канал зеленой компоненты G (являющейся частью тракта передачи видеоинформации), необходимо в соответствии с заданием изменить значение параметра Gain на 1/3 (при помощи диалогового окна, определяющего параметры и свойства блока, которое можно активизировать двойным нажатием мышки). Также рекомендуется изменить имя блока на Gain G, чтобы отличать этот блок от подобного ему, который будет размещен в канале синей компоненты, и для параметра Output data type на панели Signal Attributes выбрать значение Inherit:Same as input (для наследования выходными данными типа входных данных). Чтобы вставить блок "Gain" в канал синей компоненты B, можно обойтись без Library Browser, скопировав подобный блок из канала зеленой компоненты командой Copy в буфер обмена, вставив его копию в окно модели командой Paste и мышкой переместив его в район линии канала B. По аналогии с подобным блоком зеленой компоненты имя вставленного блока рекомендуется поменять на Gain B, а значение параметра Gain в соответствии с заданием – на 1.5.

Для сохранения модифицированной видеоинформации в виде файла в модель необходимо вставить блок "To Multimedia File" из библиотеки "Video and Image Processing Blockset > Sinks", в котором для параметра Write выбрать значение Video and audio, а для параметра Image signal – значение Separate color signals. Видеовходы вставленного блока необходимо соединить с соответствующими каналами передачи цветовых компонент на блок "Video Viewer".

Для вставки в видео текстовой информации о номере отображаемого кадра в модель необходимо вставить блок "Insert Text" из библиотеки "Video and Image Processing Blockset > Text & Graphics". В нем необходимо для параметра Image signal выбрать значение Separate color signals. Параметр Text этого блока определяет выводимый поверх видео текст. Для того чтобы это был не постоянный текст, а строка, содержащая номер отображаемого кадра, необходимо появление внутри ее спецификатора преобразования числового значения в соответствующее ему строковое значение %d. Например, параметр Text можно задать строкой: ['Frame count' sprintf('\n') 'Source frame: %d']. Здесь операция [...] объединяет в вектор-строку фрагменты строки, вызов функции sprintf('\n') обеспечивает вставку ESC-последовательности для перехода на новую строку. Местоположение строки следует определить заданием параметру Location значения ее местоположения [10 20], ее цвет (черный) – заданием параметру Color value значения [0 0 0], шрифт для строки – заданием параметру Font face значения LucidaSansRegular. В силу того, что в строке был использован спецификатор %d, в блоке появиться дополнительный порт Variables для ввода отображаемого в строке числового значения.

Поскольку отображаемая моделью видеоинформация представляет собой временную последовательность кадров, то для реализации счетчика кадров достаточно организовать подсчет временных отсчетов. Это может быть выполнено моделью, представленной на рис. 2.1 .4, которая может быть вставлена в исходную модель в виде одинарного блока (блока-подсистемы). Готовый вариант такого блока можно найти в одной из демо-моделей MATLAB, окно с которой можно активизировать, выполнив в командном окне MATLAB команду vipsurveillance. В открывшемся окне модели vipsurveillance_win следует найти блок Frame Counter и перетащить его в рассматриваемую модель Lab2_1. Выход блока Frame Counter следует соединить с портом Variables блока Insert Text.

Рис

2.1.4

. Модель счетчика кадров

Для того чтобы смикшировать аудиопоток из файла 'speech_dft.wav' с записываемым в файл 'Modification.avi' видео, необходимо в модель вставить блок, реализующий импорт звукового wav-файла в модель. Для этого надо вставить в модель блок "From Wave File" из библиотеки "Signal Processing Blockset > Signal Processing Sources" и соединить его выход с портом Audio блока Video Viewer.

Необходимо согласовать скорость аудиопотока со скоростью видеопотока. Поскольку частота кадров видео в формате NTSC равна 30 кадров в секунду, то длительность кадра (его период) будет 0.0333 с. Частота дискретизации в звуковом файле составляет 22050 Гц; поделив это значение на частоту кадров, получаем, что на один кадр должно приходиться 735 отсчетов звука. Таким образом, параметру Samples per output frame блока From Wave File следует присвоить значение 735.

Окончательный вид модели, которая реализует поставленное задание, приведен на рис. 2.1 .5. Ее симуляцию можно запустить при помощи команды Start Simulation панели инструментов. В процессе симуляции модели в графическом окне будет отображаться модифицированное видеоизображение. Оно вместе со звуковым сопровождением будет сохранено в виде файла в текущей папке MATLAB, и его можно просмотреть, если в окне Current Directory рабочего стола MATLAB на имени файла 'Modification.avi' активизировать команду Open Outside MATLAB контекстного меню, которое появляется при нажатии на имени файла правой кнопки мышки.

Рис

2.1.5

. Окончательный вид модели