exponenta event banner

Видеокарикатуризатор с использованием кода OpenCV в Simulink

В этом примере показано, как использовать карикатуризатор для улучшения цветов записанного видео с помощью OpenCV Importer. Карикатуризатор изменяет цвета в видео, используя такие параметры, как maskRadius, threshold, и ramp.

Сначала импортируйте функцию OpenCV в Simulink ® с помощью интерфейса Install and Use Computer Vision Toolbox Interface for OpenCV в Simulink. Мастер создает библиотеку Simulink, содержащую подсистему и блок Caller C для указанной функции OpenCV. Затем подсистема используется в предварительно настроенной модели Simulink для приема записанного видео. Карикатуризатор работает в соответствии сmaskRadius, threshold, и ramp значение. Вы можете изменить maskRadius, threshold, и ramp значения с использованием компонента ползунка, доступного в модели.

Вы научитесь:

  • Импорт функции OpenCV в библиотеку Simulink.

  • Используйте блоки из созданной библиотеки в модели Simulink.

Настройка компилятора C++

Чтобы создать библиотеки OpenCV, определите совместимый компилятор C++ для вашей операционной системы, как описано в документе Portable C Code Generation for Functions That Use OpenCV Library. Настройте указанный компилятор с помощью команды mex -setup c++. Дополнительные сведения см. в разделе Выбор компилятора C++.

Описание модели

В этом примере видеокартуализатор реализован с использованием модели Simulink Cartoonizer.slx.

В этой модели subsystem_slwrap_cartoonize подсистема находится в Cartoonizer_Lib library. Вы создаете subsystem_slwrap_cartoonize с помощью OpenCV Importer. Подсистема принимает видео из блока From Multimedia File, maskRadius, thresholdи ramp значение для карикатуры на видео. Вывод отображается с помощью блока Video Viewer. В subsystem_slwrap_cartoonize подсистема, inImage - входное изображение, maskRadius - размер фильтра изображения для сравнения интенсивности, threshold - пороговая разность интенсивности между пикселями, которая приводит к затемнению видео, ramp - градиент интенсивности в выходном изображении и outImage - выходное изображение. Ползунки maskRadius, threshold, и ramp используется для изменения значения во время моделирования.

Копирование папки-примера в доступное для записи расположение

Для доступа к пути к папке примера в командной строке MATLAB ® введите:

     OpenCVSimulinkExamples;

Каждая подпапка содержит все вспомогательные файлы, необходимые для выполнения примера.

Прежде чем выполнять эти действия, скопируйте папку примера в папку с возможностью записи и измените текущую рабочую папку на ...example\Cartoonizer. Все выходные файлы сохраняются в этой папке.

Шаг 1: Импорт функции OpenCV для создания библиотеки Simulink

1. Чтобы запустить приложение OpenCV Importer, щелкните Приложения на панели инструментов MATLAB. На странице приветствия укажите имя проекта как Cartoonizer. Убедитесь, что имя проекта не содержит пробелов. Нажмите кнопку Далее.

2. В разделе «Укажите библиотеку OpenCV» укажите эти расположения файлов и нажмите кнопку «Далее».

  • Корневая папка проекта: укажите путь к папке примера. Этот путь является путем к папке проекта с возможностью записи, в которой были сохранены файлы примеров. Все выходные файлы сохраняются в этой папке.

  • Исходные файлы: Укажите путь к .cpp файл, расположенный в папке проекта как cartoonizer.cpp.

  • Включить файлы: Укажите путь к .hpp верхний колонтитул, расположенный в папке проекта как cartoonizer.hpp.

3. Проанализируйте библиотеку, чтобы найти функции и типы для импорта. После завершения анализа нажмите кнопку Далее (Next). Выберите cartoonize и нажмите кнопку Далее.

4. В поле «Что импортировать» выберите I/O Type для inImage, maskRadius, threshold, и ramp как Input, outImg как вывод и нажмите кнопку Далее.

5. В окне «Создание библиотеки Simulink» проверьте значения по умолчанию и нажмите кнопку «Далее».

Библиотека Simulink cartoonize_Lib создается из кода OpenCV в корневую папку проекта. Библиотека содержит подсистему и блок вызывающего абонента C. Любой из этих блоков можно использовать для моделирования модели. В этом примере подсистема subsystem_slwrap_cartoonize используется.

Шаг 2: Использование сгенерированной подсистемы в модели Simulink

Использование сгенерированной подсистемы subsystem_slwrap_cartoonize с моделью Simulink smileDetect.slx:

1. В текущей папке MATLAB щелкните модель правой кнопкой мыши. Cartoonizer.slx и нажмите Open в контекстном меню. В модели удалите существующую subsystem_slwrap_cartoonize и перетащите созданную подсистему subsystem_slwrap_cartoonize от cartoonize_Lib к модели. Подключите подсистему к функциональному блоку MATLAB.

2. Дважды щелкните подсистему и укажите значения этих параметров.

3. Нажмите кнопку Применить, а затем кнопку ОК.

Шаг 3: Моделирование картуонизатора

На панели инструментов Simulink на вкладке Simulation нажмите кнопку моделирования модели. После завершения моделирования блок Video Viewer отображает видео с улучшением цвета на основе значения maskRadius, threshold, и ramp.

См. также

|

Связанные темы